Musisz użyć pgp_sym_encrypt
do zapisu i pgp_sym_decrypt
do przeczytania. Zrobiłeś odwrotnie.
@ColumnTransformer(
read = "pgp_sym_decrypt(" +
" test, " +
" current_setting('encrypt.key')" +
")",
write = "pgp_sym_encrypt( " +
" ?, " +
" current_setting('encrypt.key')" +
") "
)
@Column(columnDefinition = "bytea")
private String test;
Ponieważ zakodowanie klucza szyfrowania w mapowaniu nie wydaje się dobrym pomysłem, zamiast tego użyjemy obsługi PostgreSQL dla ustawień zdefiniowanych przez użytkownika.
Tak więc encrypt.key
jest przechowywany w postgresql.conf
plik konfiguracyjny:
encrypt.key = 'Wow! So much security.'
przykład jest na GitHub i działa jak urok.