私はCryptoServiceという名前のサービスを持っています。このサービスは、ICryptoServiceというインターフェースを継承しています。MD5CryptoServiceProviderを使用したC#での暗号化と復号
文字列の暗号化が動作していますが、ハッシュ結果の復号化では、復号化された文字列ではなくキーが返されます。ここ
は、私の暗号化コードです:
private string _salt = "*[email protected]#$%^&*()14344*";
private string Crypto(string text)
{
var hashmd5 = new MD5CryptoServiceProvider();
byte[] toEncryptArray = Encoding.UTF8.GetBytes(_salt);
byte[] keyArray = hashmd5.ComputeHash(Encoding.UTF8.GetBytes(_salt));
hashmd5.Clear();
TripleDesProvider.Key = keyArray;
TripleDesProvider.Mode = CipherMode.ECB;
TripleDesProvider.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = TripleDesProvider.CreateEncryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}
私の解読コード:ここでアクションでスクリーンショットを提供
private string Decrypto(string text)
{
try
{
var hashmd5 = new MD5CryptoServiceProvider();
byte[] toEncryptArray = Convert.FromBase64String(text);
byte[] keyArray = hashmd5.ComputeHash(Encoding.UTF8.GetBytes(_salt));
hashmd5.Clear();
TripleDesProvider.Key = keyArray;
TripleDesProvider.Mode = CipherMode.ECB;
TripleDesProvider.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = TripleDesProvider.CreateDecryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
TripleDesProvider.Clear();
return Encoding.UTF8.GetString(resultArray);
//return Encoding.UTF8.GetString(resultArray);
}
catch
{
return string.Empty;
}
}
。ここ
私はインターネットで https://www.codeproject.com/Articles/14150/Encrypt-and-Decrypt-Data-with-C
を見つけた私のコードの参照はこれが働くことができない...
私の質問にダウンボートを行うのではなく、あなたの意見や考えをここに落とすほうがよいでしょう。 – Chris