Вопрос

Я хочу, чтобы мое приложение зашифровало пароль пользователя, и в какой-то момент пароль будет расшифрован для отправки на сервер для аутентификации.Друг посоветовал мне использовать 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top