我必须在 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函数吗?谢谢你。