Реализация C # HMAC
-
22-09-2019 - |
Вопрос
Я хочу, чтобы мое приложение зашифровало пароль пользователя, и в какой-то момент пароль будет расшифрован для отправки на сервер для аутентификации.Друг посоветовал мне использовать HMAC.Я написал следующий код на 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();
Как расшифровать пароль (в данном случае resultSTR)?
Решение
HMAC (код аутентификации хэшированного сообщения) - это не шифрование, это хэш-функция (в данном случае SHA-256) плюс некоторый секретный ключ.Это с потерями, нет способа извлечь открытый текст из HMAC.
Если вы хотите зашифровать какие-то секретные данные, вам следует рассмотреть возможность использования вместо этого класса ProtectedData.Дополнительная информация, включая пример кода, приведена по адресу http://msdn.microsoft.com/en-us/library/system.security.cryptography.protecteddata.aspx