Как установить критерии для NHibernate для MySQL MD5? - PullRequest
1 голос
/ 19 августа 2011

В MySQL я могу сделать

SELECT * FROM table WHERE MD5(column) = 'blablabla';

Но как мне это сделать с функциями NHibernate и Criteria?

Я получил значение alrady как md5, но столбец в базе данных неmd5 хэшировал ...

Я работаю в C #.

Некоторые идеи?

1 Ответ

2 голосов
/ 19 августа 2011

В Java вы можете использовать Expression.Sql, то же самое должно работать в C #, что-то вроде:

var table = session.CreateCriteria(typeof(Table))
            .Add(Expression.Sql("MD5(column)= ?", value, NHibernateUtil.String))
            .UniqueResult<Table>();

, где value - это шестнадцатеричное значение вашегоХэш MD5.

Хотя, одно слово предостережения - если значение, хранящееся в базе данных, является паролем пользователя, то ваш дизайн имеет недостатки и небезопасен.Вы должны хранить только соленые, хешированные пароли в базе данных.Нет, вы даже не должны этого делать, вы должны сразу использовать bcrypt , scrypt или PBKDF2 для этого.

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