ódigo de cifrado @PHP convertido a ColdFusion
Tengo este bit de PHP que me gustaría hacer el equivalente en ColdFusion.
function & _encryptMessage( $message ) {
$td = mcrypt_module_open( MCRYPT_RIJNDAEL_256, '', MCRYPT_MODE_CBC, '');
mcrypt_generic_init( $td, $this->key, $this->iv );
$encrypted_data = mcrypt_generic( $td, $message );
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return base64_encode( $encrypted_data );
}
Creo que es solo
encrypt(message,"","AES","Base64")
Pero no tengo una forma real de saberlo con certeza y no se siente del todo bien, así que me preguntaba si alguien por ahí sería lo suficientemente bueno como para señalarme en la dirección correct
UPDATE: para informaciónesta respuesta por Señor Dai, fue particularmente útil.
Así que MCRYPT_RIJNDAEL_256 en realidad significa tamaño de bloque no la fuerza de cifrado. La fuerza de cifrado sigue siendo 256, ya que la clave y la sal se generan en PHP utilizando un valor que se codifica en sha-256.
Esta es la llamada de cifrado que tengo ahora:
encrypt(arguments.messageXML,instance.key,"AES/CBC/PKCS5Padding","Base64",ivSalt)
Desafortunadamente, esto explota porque el ivSalt tiene una longitud de 32 bytes (256bits) y AES solo espera una sal iv de 16 bytes. Mirandoaqu parecería que el tamaño máximo de bloque en ColdFusion / Java para AES es de 16 bytes (128 bits). Parece que no puedo ver cómo puedo obtener un tamaño de bloque de 256 bits. Cualquier ayuda sería muy apreciada.