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.