我需要帮助,任何评论都将非常感谢。
我有一个表users,字段userpassword,数据类型varchar(60)
我在表中插入来自此选择的用户
SELECT HASHBYTES('SHA2_256','test')
it insert its value (0x9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08)
到现在为止,一直都还不错
当我想从表中检索用户并且它与字段userpassword的值不匹配时,就会出现问题。
Select u.UserName
from Users u
where UserPassword = HASHBYTES('SHA2_256','test')
查询将以0个结果执行。为什么????
字段userpassword具有相同的数据类型还是我错了?
为了匹配,我需要对值进行任何其他转换吗?
提前谢谢
最佳答案
将用户密码的数据类型设置为varchar(1000)或其他值。散列映射返回65个字符,因此被截断为60个字符。
编辑:这可以解决问题,但要照丹说的做。这更有力。