Answer by Chris Petersn for Implementing this Java password encryption algorithm in PHP

This may be what you want:

$td = mcrypt_module_open('tripledes', '', 'ecb', '');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$nKeySize = mcrypt_enc_get_key_size($td);

$key = substr(sha1($encryptionKey), 0, $nKeySize);
mcrypt_generic_init($td, $key, $iv);
$nDataSize = strlen($plainBytes);
$sDataSize = substr(dechex(ceil(log($nDataSize,16))), -1) . dechex($nDataSize);

$cipherBytes = mcrypt_generic($td, $sDataSize . $plainBytes);

mcrypt_generic_deinit($td);
mcrypt_module_close($td);

Notice I encrypt $sDataSize with the data because of the way 3DES encypts/decrypts blocks of data.


Friday 27th August 2010 6:52 am

Back to User Chris Petersn - Stack Overflow blog