sql >> Database >  >> RDS >> PostgreSQL

Kan niet decoderen met pgcrypto van AES-256-CBC, maar AES-128-CBC is OK

MCRYPT_RIJNDAEL_256 is geen AES-256. Het is het Rijndael-cijfer met een blokgrootte van 256 (vandaar de fout). AES is een subset van het Rijndael-cijfer met een blokgrootte van 128 bits en sleutel groottes van 128, 192 en 256 bits. Dit komt ook tot uiting in de infuusmaat.

Om een ​​AES-256 gecodeerde cijfertekst te maken, kunt u MCRYPT_RIJNDAEL_128 gebruiken met de juiste sleutelgrootte (256 bits is 32 bytes). De _128 postfix geeft de te gebruiken blokgrootte aan; je kunt het nog steeds gebruiken met elke geldige sleutelgrootte van 128, 192 of 256 bit.

Pas op dat mcrypt - vooral de onderliggende C-bibliotheek - niet meer wordt onderhouden. Je kunt beter de openssl of latere cryptobibliotheken gebruiken.

De mcrypt- en OpenSSL-wrappers staan ​​ook graag ongeldige sleutelgroottes toe, maar waarschuwen u alleen - als u geluk heeft. Dat is natuurlijk niet compatibel met ongeveer een goed gedefinieerde AES-bibliotheek.




  1. MariaDB en externe gegevens

  2. Hoe kan ik het Postgresql SCRAM-authenticatieprobleem oplossen?

  3. Meerdere VERVANG-functie in Oracle

  4. ST_HexagonGrid geom vector om alle punten te vinden