PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да шифровате колона в Postgres с помощта на Hibernate @ColumnTransformer

Трябва да използвате 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 и работи като чар.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да инсталирате Gnatcoll Postgres на Linux Centos 7

  2. Разработване на PostgreSQL за Windows, част 1

  3. Как мога автоматично да попълня полетата на базата данни на SQLAlchemy? (Flask-SQLAlchemy)

  4. Как да свържете две таблици в поле за външен ключ, използвайки django ORM?

  5. Функции на Postgres