存储过程中的Hashbytes比较不匹配记录

时间:2010-01-12 17:38:49

标签: sql sql-server tsql sql-server-2008 stored-procedures

我的用户表(SQL Server 2008)中的密码字段在插入时使用HASHBYTES加密。我有一个存储过程,其中包含用户名和纯文本密码的参数,使用该用户名和SELECT发送的密码HASHBYTES,然后在找到匹配项时返回用户记录。 SP始终返回空记录集,但如果我将SELECT从SP复制并粘贴到新的查询窗口,则返回匹配的记录。 SP中没有其他声明。我在这里遗漏了一些东西;它是什么?

2 个答案:

答案 0 :(得分:2)

如果SELECT本身有效,但在程序内部没有,我要寻找的第一件事就是参数类型。哈希在类似的输入上会有很大差异,但是类型不同:

select hashbytes('MD5','Lorem Ipsum'), hashbytes('MD5',N'Lorem Ipsum')

答案 1 :(得分:0)

从代码中调用时,如何传递参数?是否有嵌入式CR / LF或空格?

相关问题