PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara mengenkripsi kolom di Postgres menggunakan Hibernate @ColumnTransformer

Anda perlu menggunakan pgp_sym_encrypt untuk menulis dan pgp_sym_decrypt untuk dibaca. Anda melakukan yang sebaliknya.

@ColumnTransformer(
    read =  "pgp_sym_decrypt(" +
            "    test, " +
            "    current_setting('encrypt.key')" +
            ")",
    write = "pgp_sym_encrypt( " +
            "    ?, " +
            "    current_setting('encrypt.key')" +
            ") "
)
@Column(columnDefinition = "bytea")
private String test;

Karena hard-coding kunci enkripsi dalam pemetaan sepertinya bukan ide yang bagus, kami akan menggunakan dukungan PostgreSQL untuk pengaturan yang ditentukan pengguna.

Jadi, encrypt.key disimpan di postgresql.conf file konfigurasi:

encrypt.key = 'Wow! So much security.'

contoh ada di GitHub dan bekerja seperti pesona.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Komit PostgreSQL Sqlalchemy membutuhkan banyak waktu

  2. Mengambil semua hak objek untuk peran tertentu

  3. Mengalikan dua kolom yang telah dihitung pada pernyataan CASE

  4. Postgres:Memilih Berbeda pada kolom tidak mengembalikan hasil yang berbeda dengan Bergabung

  5. GORM membuat catatan yang mungkin sudah ada