Трябва да използвате pgp_sym_encrypt
за запис и pgp_sym_decrypt
за четене. Ти направи обратното.
@ColumnTransformer(
read = "pgp_sym_decrypt(" +
" test, " +
" current_setting('encrypt.key')" +
")",
write = "pgp_sym_encrypt( " +
" ?, " +
" current_setting('encrypt.key')" +
") "
)
@Column(columnDefinition = "bytea")
private String test;
Тъй като твърдото кодиране на ключа за шифроване в картографирането не звучи като много добра идея, вместо това ще използваме поддръжката на PostgreSQL за дефинирани от потребителя настройки.
И така, encrypt.key
се съхранява в postgresql.conf
конфигурационен файл:
encrypt.key = 'Wow! So much security.'
примерът е в GitHub и работи като чар.