Die Verschlüsselung und Entschlüsselung in C# mit MD5CryptoServiceProvider
Habe ich einen Dienst namens CryptoService die Erben die Schnittstelle ICryptoService, die aus 2-Methode Crypto Decrypto-Funktion.
Verschlüsselung eines Strings Funktioniert, aber die Entschlüsselung von hash-Ergebnis wird Rückkehr meine Schlüssel anstelle des Entschlüsselten string.
Hier ist meine Verschlüsselung code :
private string _salt = "*1234567890!@#$%^&*()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);
}
Mein Entschlüsselungs-code :
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;
}
}
hier der screenshot in Aktion.
sind hier die Referenzen meines codes die ich im internet fand
https://www.codeproject.com/Articles/14150/Encrypt-and-Decrypt-Data-with-C
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre
toEncryptArray
im Encrypto bekommt den Wert_salt
. Sie meintetext
.So, gute Nachrichten, Ihre Entschlüsselung funktioniert.
Kann das nicht funktionieren. Einen hash, z.B. MD5, ist one-way. Man kann nicht den original-text aus dem hash-Wert.
Wenn Ihr crypto-service läuft auf der gleichen Maschine, schlage ich vor, den Datenschutz Klasse.