TripleDESDecryptString From C# to PHP
Posted: Wed May 24, 2006 8:28 am
Hi
I'm tring to rewrite this function on PHP:
C# code:
PHP Code:
When i pass $base64Encodedstring to PHP it does not return correct answer.
I don't know why it does not work...
Maybe the problem is in the key format:
does not match:
... any ideas ?
I'm tring to rewrite this function on PHP:
C# code:
Code: Select all
public string TripleDESDecryptString( string key, string base64Text) {
string result = string.Empty;
try {
_DES.Key = _hashMD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(key));
_DES.Mode = CipherMode.ECB;
ICryptoTransform DESDecrypt = _DES.CreateDecryptor();
byte[] Buffer = Convert.FromBase64String(base64Text);
result = ASCIIEncoding.ASCII.GetString(DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));
}
catch( Exception) {
result = string.Empty;
}
return result;
}Code: Select all
function TripleDESDecryptString($key, $base64Encodedstring) {
$td = mcrypt_module_open('tripledes', '', 'ecb', '');
$Arr = str_split(md5($key,1));
foreach ($Arr as $value) {
$keyArr .= bin2hex($value);
}
$key = $keyArr;
$iv_size = mcrypt_enc_get_iv_size($td);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
mcrypt_generic_init($td, $key, $iv);
return mdecrypt_generic($td, base64_decode($base64Encodedstring));
}I don't know why it does not work...
Maybe the problem is in the key format:
Code: Select all
_DES.Key = _hashMD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(key));Code: Select all
$Arr = str_split($key);
$Arr = str_split(md5($key,1));
foreach ($Arr as $value) {
$keyArr .= bin2hex($value);
}
$key = $keyArr;