如何为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#工作。

一些想法?

如何为MySQL MD5设置NHibernate的标准

在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。