MCRYPT_RIJNDAEL_256
не е AES-256. Това е шифърът Rijndael с размер на блока 256 (оттук и грешката). AES е подмножество на шифъра Rijndael, използващ блок с размер от 128 бита и ключ размери от 128, 192 и 256 бита. Това се отразява и в IV размер.
За да създадете AES-256 шифрован шифрован текст, можете да използвате MCRYPT_RIJNDAEL_128
с правилния размер на ключа (256 бита са 32 байта). _128
postfix показва размера на блока, който ще се използва; все още можете да го използвате с всеки валиден размер на ключа от 128, 192 или 256 бита.
Внимавайте, че mcrypt - особено основната C-библиотека - вече не се поддържа. По-добре е да използвате openssl или по-нови крипто библиотеки.
Обвивките mcrypt и OpenSSL също с радост ще позволят невалидни размери на ключове, като само ви предупреждават - ако имате късмет. Това разбира се не е съвместимо с почти никаква добре дефинирана AES библиотека.