Шифрование паролей в ASP.NET MVC 3
Я пытаюсь создать пользовательскую систему членства в ASP.NET MVC3
,
Я знаю, что есть много бесплатных и открытых поставщиков, но я делаю это, чтобы узнать больше. Мой вопрос о шифровании паролей.
Какой алгоритм вы предлагаете мне использовать: SHA1
, SHA256
, MD5
, BCrypt
, или что-то другое? Кроме того, каким способом вы предлагаете создать соль соли?
2 ответа
BCrypt, если вам нужен действительно сильный хеш. Что касается генерации соли, вы можете использовать класс RNGCryptoServiceProvider. Вот статья, которую вы можете оформить. Просто замените алгоритм SHA1, используемый там, на BCrypt.
Большинство из этих алгоритмов являются алгоритмами хеширования, они не шифруют, они создают хэш (контрольную сумму), и обычно это лучший способ хранения паролей, если у вас нет действительно веской причины хотеть восстановить пароли (и я не я думаю, что для этого есть много причин).
Я типично использую sha256. Что касается соли, достаточно случайной строки из 6 или более символов. Но соль может быть чем угодно, это зависит от вашего воображения, как ее генерировать.