Запрос SQL Server к столбцу, хэшированному с помощью MD5 - PullRequest
0 голосов
/ 10 сентября 2011

У меня есть один столбец nvarchar в SQL Server, в котором хранятся хэши паролей в MD5. Я хочу запросить этот столбец для целей тестирования. Я использовал SQL Server Management Studio для выполнения запроса примерно так.

select * from users where Password = HASHBYTES('MD5','password');

Я помню, как использовал такой запрос в MYSQL, но я не знаю, как это сделать в SQL Server.

Обратите внимание: я не прошу конвертировать MD5 в обычный. Я просто хочу проверить, что мое приложение правильно хэширует пароль.

Edit:
Я использую следующее для генерации хеша MD5

using System.Web.Security;
....
FormsAuthentication.HashPasswordForStoringInConfigFile(stringToEncrypt, "MD5");

1 Ответ

0 голосов
/ 10 сентября 2011

Та же функция в SQL Server, но возвращаемое значение - varbinary, а не varchar: http://msdn.microsoft.com/en-us/library/ms174415.aspx

РЕДАКТИРОВАТЬ: Исходя из редактирования вашего вопроса, я бы рекомендовал изменить ваш объект и базу данных для хранения байтового массива, а не строка.Это сохранит чистоту, и вы сможете запросить базу данных, используя функцию HashBytes.Для этого вы можете использовать поле EF типа «Binary».Чтобы сгенерировать значение, используйте метод ComputeHash класса MD5 - так и поступает ваш текущий метод.

...