PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Impossible de déchiffrer en utilisant pgcrypto depuis AES-256-CBC mais AES-128-CBC est OK

MCRYPT_RIJNDAEL_256 n'est pas AES-256. C'est le chiffrement Rijndael avec une taille de bloc de 256 (d'où l'erreur). AES est un sous-ensemble du chiffrement de Rijndael utilisant une taille de bloc de 128 bits et une clé tailles de 128, 192 et 256 bits. Cela se reflète également dans la taille IV.

Pour créer un texte chiffré AES-256, vous pouvez utiliser MCRYPT_RIJNDAEL_128 avec la bonne taille de clé (256 bits =32 octets). Le _128 suffixe indique la taille de bloc à utiliser ; vous pouvez toujours l'utiliser avec n'importe quelle taille de clé valide de 128, 192 ou 256 bits.

Attention, mcrypt - en particulier la bibliothèque C sous-jacente - n'est plus maintenu. Vous feriez mieux d'utiliser les bibliothèques de chiffrement openssl ou ultérieures.

Les wrappers mcrypt et OpenSSL autoriseront également avec plaisir des tailles de clé non valides, ne vous avertissant que si vous avez de la chance. Ce n'est bien sûr pas compatible avec une bibliothèque AES bien définie.