ID: 27746
User updated by: taomyn at myway dot com
Reported By: taomyn at myway dot com
-Status: Feedback
+Status: Open
Bug Type: mcrypt related
Operating System: Windows Server 2003
PHP Version: 4.3.5
New Comment:
<?
$password = "muppets";
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
$key = mhash(MHASH_MD5,substr("dimwits", 0,
mcrypt_get_key_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB)));
print "EP===".$password."===\n";
print "EK===".$key."===\n";
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$enc_pwd = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key,
$password,MCRYPT_MODE_ECB, $iv);
print "EE===".$enc_pwd."===\n";
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
$key = mhash(MHASH_MD5,substr("dimwits", 0,
mcrypt_get_key_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB)));
print "DP===".$password."===\n";
print "DK===".$key."===\n";
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$dec_pwd = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $enc_pwd,
MCRYPT_MODE_ECB, $iv);
print "DD===".trim(chop($dec_pwd))."===\n";
?>
Under v4.3.4
EP===muppets===
EK===(�^⌂►�A�░z�│zE|─===
EE===♣�╦ ↨�6(Z╣╣k◄F�`===
DP===muppets===
DK===(�^⌂►�A�░z�│zE|─===
DD===muppets===
Under v4.3.5
EP===muppets===
EK===(�^⌂►�A�░z�│zE|─===
EE===♣�╦ ↨�6(Z╣╣k◄F�`===
DP===muppets===
DK===(�^⌂►�A�░z�│zE|─===
DD===♣�╦ ↨�6(Z╣╣k◄F�`===
I.E. IT DOESN'T DECRYPT - HAPPY?
Previous Comments:
------------------------------------------------------------------------
[2004-03-29 11:46:29] [EMAIL PROTECTED]
Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves.
A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external
resources such as databases, etc.
If possible, make the script source available online and provide
an URL to it here. Try avoid embedding huge scripts into the report.
------------------------------------------------------------------------
[2004-03-29 03:30:57] taomyn at myway dot com
Description:
------------
My decrypting routines now fail to decrypt and in fact seem to return
the encrypted value.
Reproduce code:
---------------
function encrypt_pwd($password)
{
/* Return encrypted password */
global $config;
$password = trim($password);
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
$key = mhash(MHASH_MD5,substr($config['pass_phrase'], 0,
mcrypt_get_key_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB)));
error_log("EP===".$password."===");
error_log("EK===".$key."===");
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$enc_pwd = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $password,
MCRYPT_MODE_ECB, $iv);
error_log("EE===".$enc_pwd."===");
return $enc_pwd;
}
function decrypt_pwd($password)
{
/* Return decrypted password */
global $config;
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
$key = mhash(MHASH_MD5,substr($config['pass_phrase'], 0,
mcrypt_get_key_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB)));
error_log("DP===".$password."===");
error_log("DK===".$key."===");
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$dec_pwd = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $password,
MCRYPT_MODE_ECB, $iv);
error_log("DD===".trim(chop($dec_pwd))."===");
return trim(chop($dec_pwd));
}
Expected result:
----------------
[29-Mar-2004 09:35:31] EP===bubbles10===
[29-Mar-2004 09:35:31] EK===-� �WqG9�\6�===
[29-Mar-2004 09:35:31] EE===u!��+�_Yi��O�t===
[29-Mar-2004 09:35:50] DP===u!��+�_Yi��O�t===
[29-Mar-2004 09:35:50] DK===-� �WqG9�\6�===
[29-Mar-2004 09:35:50] DD===bubbles10===
Actual result:
--------------
[29-Mar-2004 09:35:31] EP===bubbles10===
[29-Mar-2004 09:35:31] EK===-� �WqG9�\6�===
[29-Mar-2004 09:35:31] EE===u!��+�_Yi��O�t===
[29-Mar-2004 09:35:50] DP===u!��+�_Yi��O�t===
[29-Mar-2004 09:35:50] DK===-� �WqG9�\6�===
[29-Mar-2004 09:35:50] DD===u!��+�_Yi��O�t===
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=27746&edit=1