Bạn cần sử dụng pgp_sym_encrypt
để ghi và pgp_sym_decrypt
để đọc. Bạn đã làm ngược lại.
@ColumnTransformer(
read = "pgp_sym_decrypt(" +
" test, " +
" current_setting('encrypt.key')" +
")",
write = "pgp_sym_encrypt( " +
" ?, " +
" current_setting('encrypt.key')" +
") "
)
@Column(columnDefinition = "bytea")
private String test;
Vì mã hóa cứng khóa mã hóa trong ánh xạ nghe có vẻ không phải là một ý tưởng hay, thay vào đó chúng tôi sẽ sử dụng hỗ trợ PostgreSQL cho các cài đặt do người dùng xác định.
Vì vậy, encrypt.key
được lưu trữ trong postgresql.conf
tệp cấu hình:
encrypt.key = 'Wow! So much security.'
ví dụ trên GitHub và hoạt động như một sự quyến rũ.