sql >> Databáze >  >> RDS >> PostgreSQL

Jak zašifrovat sloupec v Postgresu pomocí Hibernate @ColumnTransformer

Musíte použít pgp_sym_encrypt pro zápis a pgp_sym_decrypt pro čtení. Udělal jsi opak.

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

Protože zakódování šifrovacího klíče v mapování nezní jako příliš dobrý nápad, použijeme místo toho podporu PostgreSQL pro uživatelsky definovaná nastavení.

Takže encrypt.key je uložen v postgresql.conf konfigurační soubor:

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

The příklad je na GitHubu a funguje jako kouzlo.



  1. Změňte hodnotu druhého výběru při prvním výběru

  2. Jak mohu v SQL vygenerovat všechny možné jedinečné kombinace 5!56?

  3. Seřaďte podle maximální hodnoty ve třech různých sloupcích

  4. jak změnit režim mysql sql po instalaci