C # HMAC implementazione
-
22-09-2019 - |
Domanda
Voglio che la mia applicazione per crittografare una password utente, e in una sola volta la password verrà decrittografato da inviare al server per l'autenticazione. Un amico mi consiglia di utilizzare HMAC. Ho scritto il seguente codice 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();
Come decodificare la password (resultSTR, in questo caso)?
Soluzione
Un HMAC (Hashed Message Authentication Code) non è la crittografia, la sua funzione di hash (in questo caso SHA-256) più alcuni chiave segreta. E 'lossy, non c'è modo di ricavare il testo in chiaro dal HMAC.
Se si desidera crittografare alcuni dati segreti, è consigliabile utilizzare la classe ProtectedData invece. Più Infom incluso il codice di esempio a http://msdn.microsoft .com / it-it / library / system.security.cryptography.protecteddata.aspx