我正尝试在SQL Server中加密密码,在使用字符串与使用预准备语句参数时,我得到了两种不同的结果。
例如:
SELECT
sys.fn_varbintohexstr(HASHBYTES('sha1', ?)),
sys.fn_varbintohexstr(HASHBYTES('sha1', 'password'))哪里去了?由“password”填充。它给了我
0xe8f97fba9104d1ea50479...
0x5baa61e4c9b93f3f06822...为什么我得到了两个不同的结果,这应该是相同的事情?
而且,这只在SQL Server中发生,如果我在MySQL中执行类似的查询,它会为两者返回相同的值。
我知道我应该使用更好的加密,但我现在坚持使用sha1 (无盐)。
谢谢
发布于 2013-05-31 06:21:59
一个是varchar,另一个是nvarchar
SELECT
sys.fn_varbintohexstr(HASHBYTES('sha1','password')),
sys.fn_varbintohexstr(HASHBYTES('sha1',N'password'))返回
0x5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
0xe8f97fba9104d1ea5047948e6dfb67facd9f5b73https://stackoverflow.com/questions/16846256
复制相似问题