ID: 26283
User updated by: stjeffy at hotmail dot com
Reported By: stjeffy at hotmail dot com
Status: Bogus
Bug Type: mcrypt related
Operating System: windows 2000,linux
PHP Version: 4.3.2
New Comment:
Thank you for your reply.
I had try to convert the hex string to the binary string, however The
actual result was not the expected result.
The expected result is calculated by C Language.
Previous Comments:
------------------------------------------------------------------------
[2003-11-17 14:00:09] [EMAIL PROTECTED]
The key is expected to be in binary, not hex. Try using
pack() to convert the string from hex to bin, i.e.
$strKey = pack('H48', "3FD3...");
J
------------------------------------------------------------------------
[2003-11-17 03:14:11] stjeffy at hotmail dot com
Description:
------------
I work with mcrypt to encrypt the string by Triple DES. But I meet with
the key length problem.
I use a 24BYTE key, the key
is(HEX)3FD3A3DABD10B0FF6EAFB5A0103D386EAF6E3F8CAED6CD93
After executing a instance,
the system reports the following error:
mcrypt_generic_init(): Key size too large; supplied length: 48, max: 24
in
and cut off the half of the original key to calculate the 3des result.
And I find there exists the same problem in php.net' online help-- the
2nd example provided in http://www.php.net/manual/en/ref.mcrypt.php.
Reproduce code:
---------------
$strSource = "http://www.php.net/test.php";
$strKey = "3FD3A3DABD10B0FF6EAFB5A0103D386EAF6E3F8CAED6CD93";
$td = mcrypt_module_open (MCRYPT_3DES, '', 'ecb', '');
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td), MCRYPT_RAND);
mcrypt_generic_init ($td, $strKey, $iv);
$strCode = mcrypt_generic ($td, $strSource);
mcrypt_generic_end ($td);
echo base64_encode($strCode);
Expected result:
----------------
w6e8c9Tp0/PejfYYvgJJu3cHUXYg29CQAthGmi480Ng=
Actual result:
--------------
LMke4PuG37H9vP5gvRoVwQkX0hZrtfE9NB/az+lSLcc=
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=26283&edit=1