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

Impossibile decrittografare utilizzando pgcrypto da AES-256-CBC ma AES-128-CBC è OK

MCRYPT_RIJNDAEL_256 non è AES-256. È il codice Rijndael con una dimensione del blocco di 256 (da cui l'errore). AES è un sottoinsieme del codice Rijndael che utilizza una dimensione del blocco di 128 bit e una chiave dimensioni di 128, 192 e 256 bit. Ciò si riflette anche nella taglia IV.

Per creare un testo cifrato crittografato AES-256 puoi utilizzare MCRYPT_RIJNDAEL_128 con la dimensione della chiave corretta (256 bit corrispondono a 32 byte). Il _128 postfix indica la dimensione del blocco da utilizzare; puoi ancora usarlo con qualsiasi dimensione della chiave valida di 128, 192 o 256 bit.

Fai attenzione che mcrypt, in particolare la libreria C sottostante, non viene più mantenuto. È meglio usare le librerie crittografiche openssl o successive.

I wrapper mcrypt e OpenSSL consentiranno felicemente anche le dimensioni delle chiavi non valide, avvisandoti solo se sei fortunato. Ovviamente non è compatibile con nessuna libreria AES ben definita.