PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách mã hóa một cột trong Postgres bằng Hibernate @ColumnTransformer

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ũ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ON DELETE SET NULL trong postgres

  2. Nhận danh sách tất cả các bảng đã sử dụng trong truy vấn Postgresql SELECT

  3. làm thế nào để làm cho truy vấn này cũng trả về các hàng có giá trị đếm 0?

  4. Chuyển biểu diễn ngày postgres thành chuỗi ISO 8601

  5. SQL:làm thế nào để chọn hàng có nhiều giá trị nhất?