如何为MySQL MD5设置NHibernate的标准
本文关键字:NHibernate 标准 设置 MD5 MySQL | 更新日期: 2023-09-27 18:06:20
MySQL
SELECT * FROM table WHERE MD5(column) = 'blablabla';
但是我如何用NHibernate和Criteria函数做到这一点呢?
我已经得到一个值md5,但数据库中的列不是md5哈希…
我用c#工作。
一些想法?
在Java中,您可以使用Expression。Sql,同样的应该在c#中工作,比如:
var table = session.CreateCriteria(typeof(Table))
.Add(Expression.Sql("MD5(column)= ?", value, NHibernateUtil.String))
.UniqueResult<Table>();
其中value
是MD5哈希的十六进制编码值。
不过,有一点要注意——如果存储在数据库中的值是用户的密码,那么你的设计是有缺陷的,不安全的。您应该只在数据库中存储经过处理的散列密码。不,你甚至不应该这样做,你应该立即使用bcrypt, script或PBKDF2。