sql >> Database >  >> RDS >> PostgreSQL

Een kolom coderen in Postgres met Hibernate @ColumnTransformer

U moet pgp_sym_encrypt . gebruiken voor schrijven en pgp_sym_decrypt voor lezen. Jij deed het tegenovergestelde.

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

Omdat het hard coderen van de encryptiesleutel in de mapping niet zo'n goed idee klinkt, zullen we in plaats daarvan de PostgreSQL-ondersteuning gebruiken voor door de gebruiker gedefinieerde instellingen.

Dus de encrypt.key wordt opgeslagen in de postgresql.conf configuratiebestand:

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

De voorbeeld staat op GitHub en werkt als een tierelier.



  1. Is er een manier om meerdere rijen te selecteren met behulp van parameters?

  2. Omgaan met MySQL-datum- en tijdstempels in Java

  3. Specifieke waarde voor SQL-telling over meerdere kolommen en rijen

  4. Afbeelding invoegen in BLOB Oracle 10g