私はこの次の C# コードを持っていますが、PHP mcrypt_decrypt() のパラメーターを追加するのに苦労しています。
private string Decrypt(string strText, string sDecrKey)
{
string message;
byte[] rgbKey = new byte[0];
byte[] rgbIV = new byte[] { 0x12, 0x34, 0x56, 120, 0x90, 0xab, 0xcd, 0xef };
byte[] buffer = new byte[strText.Length + 1];
try
{
rgbKey = Encoding.UTF8.GetBytes(Strings.Left(sDecrKey, 8));
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
buffer = Convert.FromBase64String(strText);
MemoryStream stream2 = new MemoryStream();
CryptoStream stream = new CryptoStream(stream2, provider.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
stream.Write(buffer, 0, buffer.Length);
stream.FlushFinalBlock();
message = Encoding.UTF8.GetString(stream2.ToArray());
}
catch (Exception exception1)
{
ProjectData.SetProjectError(exception1);
Exception exception = exception1;
message = exception.Message;
ProjectData.ClearProjectError();
return message;
ProjectData.ClearProjectError();
}
return message;
}
文字列 mcrypt_decrypt (文字列 $cipher 、文字列 $key 、文字列 $data 、文字列 $mode [, 文字列 $iv ] )
私のデータは-:"iHcKDE0aeDZU3q31ULZcvQ=="
鍵-: "&%#@?、:*"
PHP mcrypt_decrypt () 関数を使用してこのデータを復号化したい。C# の知識はほとんどありませんが、PHP は得意です。私を助けてください
<?php
$key = pack("nvc*",0x12, 0x34, 0x56, 120, 0x90, 0xab, 0xcd, 0xef);
$iv_size = mcrypt_get_iv_size(MCRYPT_3DES, MCRYPT_MODE_CFB)
$ciphertext_dec = base64_decode("iHcKDE0aeDZU3q31ULZcvQ==");
$iv_dec = substr($ciphertext_dec, 0, $iv_size);
$retval = mcrypt_decrypt(MCRYPT_3DES, $key, $ciphertext_dec, MCRYPT_MODE_CFB, $iv_dec);
echo $retval;
?>