sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan krypterer du en kolonne i Postgres ved hjælp af Hibernate @ColumnTransformer

Du skal bruge pgp_sym_encrypt til skrivning og pgp_sym_decrypt til læsning. Du gjorde det modsatte.

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

Fordi hårdkodning af krypteringsnøglen i kortlægningen ikke lyder som en særlig god idé, vil vi i stedet bruge PostgreSQL-understøttelsen til brugerdefinerede indstillinger.

encrypt.key er gemt i postgresql.conf konfigurationsfil:

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

eksempel er på GitHub og fungerer som en charme.



  1. Sådan opretter du en formular fra en tabel i Access 2016

  2. Django:Exception Value (2013, '2013:Mistet forbindelse til MySQL-server under forespørgsel', ingen)

  3. Test forespørgsels eksekveringstid i laravel

  4. kopiering til midlertidig tabel tager lang tid