sql >> Databasteknik >  >> RDS >> PostgreSQL

Kan inte dekryptera med pgcrypto från AES-256-CBC men AES-128-CBC är OK

MCRYPT_RIJNDAEL_256 är inte AES-256. Det är Rijndael-chifferet med en blockstorlek på 256 (därav felet). AES är en delmängd av Rijndael-chifferet som använder blockstorlek på 128 bitar och nyckel storlekar på 128, 192 och 256 bitar. Detta återspeglas också i IV-storleken.

För att skapa en AES-256 krypterad chiffertext kan du använda MCRYPT_RIJNDAEL_128 med rätt nyckelstorlek (256 bitar är 32 byte). _128 postfix anger blockstorleken som ska användas; du kan fortfarande använda den med valfri giltig nyckelstorlek på 128, 192 eller 256 bitar.

Tänk på att mcrypt - speciellt det underliggande C-biblioteket - inte underhålls längre. Det är bättre att använda openssl eller senare kryptobibliotek.

Mcrypt- och OpenSSL-omslagen tillåter också gärna ogiltiga nyckelstorlekar och varnar dig bara - om du har tur. Det är naturligtvis inte kompatibelt med något väldefinierat AES-bibliotek.




  1. Ett exempel för att demonstrera sårbarheten hos SQL-injektion och dess förebyggande i Oracle

  2. Hur man skapar dynamiska pivottabeller i MySQL

  3. Pivot på Oracle 10g

  4. Oracle Bulk Collect Exempel med hjälp av markörradtypsobjekt