Sie müssen pgp_sym_encrypt
verwenden für schreiben und pgp_sym_decrypt
zum lesen. Du hast das Gegenteil getan.
@ColumnTransformer(
read = "pgp_sym_decrypt(" +
" test, " +
" current_setting('encrypt.key')" +
")",
write = "pgp_sym_encrypt( " +
" ?, " +
" current_setting('encrypt.key')" +
") "
)
@Column(columnDefinition = "bytea")
private String test;
Da es sich nicht nach einer sehr guten Idee anhört, den Verschlüsselungsschlüssel im Mapping fest zu codieren, verwenden wir stattdessen die PostgreSQL-Unterstützung für benutzerdefinierte Einstellungen.
Also der encrypt.key
wird in der postgresql.conf
gespeichert Konfigurationsdatei:
encrypt.key = 'Wow! So much security.'
Der Beispiel ist auf GitHub und funktioniert wie ein Zauber.