Descubrir la clave exacta creada por PHPcrypt

Una aplicación de PHP que estoy manteniendo usa Rijndael_256 con cifrado EBC_MODE con mcrypt. La diversión dice que la clave no tiene 256 bits de longitud, sino solo 160. Según lamcrypt_encrypt documentación la tecla se rellena con \ 0 para obtener el tamaño requerido si es demasiado pequeño.

La clave con la que se cifrarán los datos. Si es más pequeño que el tamaño de clave requerido, se rellena con '\ 0'. Es mejor no usar cadenas ASCII para las claves.

Esto parece ocurrir alrededor del comienzo delínea 1186 en mcrypt.c y modificando la clave en la línea 1213.

Así que digamos que tenemos$key = 'abcdefghijkm'; que es demasiado corto, pero la implementación de mcrypt por PHP garantiza que se extienda a 32 caracteres (o 256 bits) cuando se usa RIJNDAEL_256. ¿Cómo será la llave final?

Lo pregunto porque se está construyendo otra aplicación que utiliza los mismos datos cifrados, pero está en otro idioma. Perl para ser exactos y estoy usandoCrypto::Rijndael. Para la clave de ejemplo dada, ¿cuál es la clave exacta a la que tendría que alimentarCrypto::Rijndael (o cualquier otro para el caso) para poder descifrar los datos de nuevo?

Actualizar

Con Perl puedo generar una clave que está rellenada con \ 0 haciendopack('a32', 'my secret key'); (oZ32)length() reportará 32 y elCrypt::Rijndael El módulo acepta la clave. Mirando la fuente de mcrypt de PHP, esta debería ser la clave que se está generando (\ 0 rellenado), pero simplemente no la tomará.

En teoria en phppack('a32', 'my secret key'); debería dar como resultado la misma clave rellenada \ 0 que genera mcrypt de PHP, pero este no es el caso.

Estoy muy cerca de cifrar todo de nuevo, pero con una nueva clave. Esto está tomando demasiado tiempo.

Respuestas a la pregunta(2)

Su respuesta a la pregunta