MCRYPT_RIJNDAEL_256
non è AES-256. È il codice Rijndael con una dimensione del blocco di 256 (da cui l'errore). AES è un sottoinsieme del codice Rijndael che utilizza una dimensione del blocco di 128 bit e una chiave dimensioni di 128, 192 e 256 bit. Ciò si riflette anche nella taglia IV.
Per creare un testo cifrato crittografato AES-256 puoi utilizzare MCRYPT_RIJNDAEL_128
con la dimensione della chiave corretta (256 bit corrispondono a 32 byte). Il _128
postfix indica la dimensione del blocco da utilizzare; puoi ancora usarlo con qualsiasi dimensione della chiave valida di 128, 192 o 256 bit.
Fai attenzione che mcrypt, in particolare la libreria C sottostante, non viene più mantenuto. È meglio usare le librerie crittografiche openssl o successive.
I wrapper mcrypt e OpenSSL consentiranno felicemente anche le dimensioni delle chiavi non valide, avvisandoti solo se sei fortunato. Ovviamente non è compatibile con nessuna libreria AES ben definita.