このC#クラスでエンコードされた文字列をPHPで復号化する必要があります(ここにあります)
システムを使用する;
System.Security.Cryptography の使用;
System.Text を使用します。
public static class 暗号化
{
public static string Encrypt(文字列入力、文字列キー)
{
byte[] inputArray = UTF8Encoding.UTF8.GetBytes(入力);
TripleDESCryptoServiceProvider tripleDES = 新しい TripleDESCryptoServiceProvider();
tripleDES.Key = UTF8Encoding.UTF8.GetBytes(キー);
tripleDES.Mode = CipherMode.ECB;
tripleDES.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = tripleDES.CreateEncryptor();
byte[] resultArray = cTransform.TransformFinalBlock(inputArray, 0, inputArray.Length);
tripleDES.Clear();
Convert.ToBase64String(resultArray, 0, resultArray.Length); を返します。
}
public static string Decrypt(文字列入力、文字列キー)
{
byte[] inputArray = Convert.FromBase64String(入力);
TripleDESCryptoServiceProvider tripleDES = 新しい TripleDESCryptoServiceProvider();
tripleDES.Key = UTF8Encoding.UTF8.GetBytes(キー);
tripleDES.Mode = CipherMode.ECB;
tripleDES.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = tripleDES.CreateDecryptor();
byte[] resultArray = cTransform.TransformFinalBlock(inputArray, 0, inputArray.Length);
tripleDES.Clear();
UTF8Encoding.UTF8.GetString(resultArray) を返します。
}
}
Web で見つけたさまざまな例を試してみましたが、何もうまくいかないようです。最初の問題は php mcrypt_generic_init の $iv パラメーターにあり、別の問題は php 関数にないパディングにあると思います。上記の c# Decrypt 関数を PHP に変換する方法を教えてください。ありがとうございました。