使用MD5查询列哈希值上的SQL Server

时间:2011-09-10 02:51:41

标签: sql-server sql-server-2008 md5 ssms

我在SQL Server中有一个nvarchar列,用于存储在MD5中散列的密码。我想查询此列以进行测试。我使用SQL Server Management Studio来执行类似的查询。

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

我记得在MYSQL中使用过这样的查询,但我不知道如何在SQL Server中使用它。

请注意:我不是要求从MD5转换为plain。我只想测试我的应用程序是否正确地密码密码。

编辑:
我使用以下代码生成MD5哈希

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

1 个答案:

答案 0 :(得分:0)

SQL Server中的函数相同,但返回值为varbinary,而不是varchar:http://msdn.microsoft.com/en-us/library/ms174415.aspx

编辑:根据您的问题编辑,我建议您更改对象和数据库以存储字节数组,而不是字符串。这样可以保持清洁,并且您可以使用HashBytes函数查询数据库。为此,您可以使用EF字段类型“二进制”。要生成该值,请使用MD5类的ComputeHash方法 - 这是您当前方法正在执行的操作。