C # HMAC mise en œuvre
-
22-09-2019 - |
Question
Je veux que mon application à crypter un mot de passe de l'utilisateur et à un mot de passe de temps sera décrypté à envoyer au serveur pour l'authentification. Un ami m'a conseillé d'utiliser HMAC. J'ai écrit le code suivant dans 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();
Comment décoder le mot de passe (resultSTR, dans ce cas)?
La solution
Un HMAC (Hashed Message Authentication Code) n'est pas le cryptage, il est fonction de hachage (dans ce cas, SHA-256), plus une clé secrète. Il est lossy, il n'y a aucun moyen de tirer le texte brut du HMAC.
Si vous voulez crypter des données secrètes, vous devriez envisager d'utiliser la classe à la place de ProtectedData. Plus infom y compris le code exemple http://msdn.microsoft .com / fr-fr / bibliothèque / system.security.cryptography.protecteddata.aspx