PHP の BlowFish Decrypt コードを C# に変換する必要があります。
PHP コード (X-Cart)、
function mdecrypt($data, $key) {
$td = mcrypt_module_open(MCRYPT_BLOWFISH, '', MCRYPT_MODE_ECB, '');
$decrypted_data = mdecrypt_generic($td, func_hex2str($data));
return $decrypted_data;
}
#
# Convert hex to string
#
function func_hex2str($str) {
$ret = "";
$l = strlen($str);
for ($i = 0; $i < $l; $i += 2) {
$ret .= chr(hexdec(substr($str, $i, 2)));
}
echo $ret;
return $ret;
}
そして私は試しました、
BlowFish algo = new BlowFish("0cb12a77dbb5ee7128ad3aea6154614f");
string details = "138b5a7e2c0e453a";
int dLen = details.Length;
string ret = "";
for (int i = 0; i < dLen; i += 2)
{
ret += (char) Convert.ToInt64(details.Substring(i, 2), 16);
}
details = algo.Decrypt_ECB(ret);
Console.WriteLine(details);
しかし、PHP と C# の間で異なる結果が出力されます。(PHP : こんにちは、C# : ??q???_^)
誰かヒントをください。彼は「パディング」に関するものかもしれないと言いました。
しかし、まだわかりません。
私が間違っていることを知っている人はいますか?私に助言してください。
ありがとう。