C # HMAC Implementierung
-
22-09-2019 - |
Frage
Ich möchte meine Anwendung ein Benutzerkennwort zu verschlüsseln, und zu einem Zeitpunkt Passwort an den Server zur Authentifizierung gesendet werden soll entschlüsselt werden. Ein Freund beraten mich HMAC zu verwenden. Ich schrieb den folgenden Code in C #:
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] key = encoding.GetBytes("secret");
HMACSHA256 myhmacsha256 = new HMACSHA256(key);
byte[] hashValue = myhmacsha256.ComputeHash(encoding.GetBytes("text"));
string resultSTR = Convert.ToBase64String(hashValue);
myhmacsha256.Clear();
Wie das Passwort (resultSTR, in diesem Fall) dekodieren?
Lösung
Ein HMAC (Hash Message Authentication Code) ist keine Verschlüsselung, es ist Hash-Funktion (in diesem Fall SHA-256) sowie einige geheimen Schlüssel. Es ist verlustbehaftet, gibt es keine Möglichkeit, den Klartext aus dem HMAC abzuleiten.
Wenn Sie einige geheime Daten verschlüsseln möchten, sollten Sie stattdessen die ProtectedData Klasse betrachten verwenden. Weitere infom einschließlich Beispielcode unter http://msdn.microsoft .com / en-us / library / system.security.cryptography.protecteddata.aspx