Хранение хешированных паролей Sha256 с помощью Nhibernate - PullRequest
1 голос
/ 14 июня 2011

У меня есть простое веб-приложение, в котором есть страница входа в систему, в домене переднего плана есть простая модель:

string username {get;set;}
string password {get;set;}

Однако перед отправкой в ​​объект предметной области он шифруется с помощью sha256, изначально предметная область была:

string username {get;set;}
string password {get;set;}

Таким образом, я бы взял пароль от пользовательского интерфейса, зашифровал его, затем использовал метод Encoding.GetString (), чтобы получить строку для сохранения. Однако, когда я пытаюсь сохранить данные, это, кажется, дает исключение, которое, как я полагаю, сводится к недопустимым символам в строке.

Посмотрев вокруг, некоторые люди порекомендовали сохранить его как varbinary (32) и использовать byte [] password {get; set;} в слое данных, однако я не смог заставить Nhibernate правильно отобразить его.

Так что кто-нибудь может рассказать мне, как лучше хранить хешированные пароли с помощью Nhibernate и SqlServer или MySql. (Приложение поддерживает обе базы данных)

1 Ответ

0 голосов
/ 14 июня 2011

Вы не должны использовать Encoding.GetString() для значения SHA, так как оно выдаст текст, который может храниться неправильно или, что еще хуже, даст исключение. Скорее используйте что-то вроде Convert.ToBase64String.

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