我必须在 PHP 中解密一个用这个 C# 类编码的字符串(它在这里)
使用系统;
使用 System.Security.Cryptography;
使用 System.Text;
公共静态类加密
{
公共静态字符串加密(字符串输入,字符串密钥)
{
byte[] inputArray = UTF8Encoding.UTF8.GetBytes(input);
TripleDESCryptoServiceProvider TripleDES = new TripleDESCryptoServiceProvider();
TripleDES.Key = UTF8Encoding.UTF8.GetBytes(key);
TripleDES.Mode = CipherMode.ECB;
TripleDES.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = TripleDES.CreateEncryptor();
byte[] resultArray = cTransform.TransformFinalBlock(inputArray, 0, inputArray.Length);
三重DES.清除();
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}
公共静态字符串解密(字符串输入,字符串密钥)
{
byte[] inputArray = Convert.FromBase64String(input);
TripleDESCryptoServiceProvider TripleDES = new TripleDESCryptoServiceProvider();
TripleDES.Key = UTF8Encoding.UTF8.GetBytes(key);
TripleDES.Mode = CipherMode.ECB;
TripleDES.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = TripleDES.CreateDecryptor();
byte[] resultArray = cTransform.TransformFinalBlock(inputArray, 0, inputArray.Length);
三重DES.清除();
返回 UTF8Encoding.UTF8.GetString(resultArray);
}
}
我尝试了在网上找到的不同示例,但似乎没有任何效果。我认为第一个问题来自 php mcrypt_generic_init 中的 $iv 参数,然后另一个问题来自 php 函数中缺少的填充。你能帮我在PHP中转换上面的c#Decrypt函数吗?谢谢你。