C # Чтение зашифрованных паролей - PullRequest
5 голосов
/ 06 ноября 2008

Я использую приведенный ниже код, чтобы сохранить пароль в реестре, как мне преобразовать его обратно? Приведенный ниже код не мой, но он хорошо шифруется.

Спасибо

using System.Security.Cryptography;

public static string EncodePasswordToBase64(string password)
{  byte[] bytes   = Encoding.Unicode.GetBytes(password);
   byte[] dst     = new byte[bytes.Length];
   byte[] inArray = HashAlgorithm.Create("SHA1").ComputeHash(dst);
   return Convert.ToBase64String(inArray);
}

Ответы [ 11 ]

0 голосов
/ 06 ноября 2008

Используя ваш собственный фрагмент кода выше, вы хотите вызвать этот метод, когда пользователь изначально выбирает пароль, но добавить к паролю то, что называется salt где-то в строке пароля (обычно в начале или в конце). Затем, когда пользователь пытается аутентифицироваться позже, он вводит свой пароль, вы запускаете его вместе с хэшем с помощью того же метода, и если два хэша равны, это статистически отличный шанс, что пароли равны и действительны.

При этом SHA1, как известно, имеет недостатки, и вам следует выбрать более сильный алгоритм. Если вы хотите остаться в семье SHA, SHA512 довольно хорош.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...