PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak zaszyfrować kolumnę w Postgresie za pomocą Hibernate @ColumnTransformer

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak policzyć grupę według zapytania w NodeJS Sequelize

  2. Zakończenie NGINX TLS dla PostgreSQL

  3. Funkcja Postgres tworzy, ale nie wykonuje

  4. Django Postgresql usuwa domyślne ustawienia kolumn podczas migracji

  5. Jak sprawdzić, czy upsert był aktualizacją z PostgreSQL 9.5+ UPSERT?