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?

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top