sql >> Base de Datos >  >> RDS >> PostgreSQL

No se puede descifrar usando pgcrypto de AES-256-CBC pero AES-128-CBC está bien

MCRYPT_RIJNDAEL_256 no es AES-256. Es el cifrado Rijndael con un tamaño de bloque de 256 (de ahí el error). AES es un subconjunto del cifrado Rijndael que usa un tamaño de bloque de 128 bits y clave tamaños de 128, 192 y 256 bits. Esto también se refleja en el tamaño de la IV.

Para crear un texto cifrado AES-256, puede usar MCRYPT_RIJNDAEL_128 con el tamaño de clave correcto (256 bits son 32 bytes). El _128 postfix indica el tamaño de bloque que se utilizará; aún puede usarlo con cualquier tamaño de clave válido de 128, 192 o 256 bits.

Tenga en cuenta que mcrypt, especialmente la biblioteca C subyacente, ya no se mantiene. Es mejor usar las bibliotecas de cifrado de openssl o posteriores.

Los envoltorios mcrypt y OpenSSL también permitirán felizmente tamaños de clave no válidos, solo advirtiéndole, si tiene suerte. Eso, por supuesto, no es compatible con ninguna biblioteca AES bien definida.