Dol*_*ita 1 sql-server hash md5
我遇到了一个 SQL Server 函数的奇怪问题HashBytes。
Password我的Users表中有一个列( nvarchar(32), not null)。
用户的密码是MD5 中的123456哪个e10adc3949ba59abbe56e057f20f883e,该值存储在列中。
我正在尝试获取e10adc3949ba59abbe56e057f20f883e其实际的MD5 哈希函数14e1b600b1fd579f47433b88e8d85291(您可以在此处查看),但是在我的 SQL Server 查询中,我得到了完全不同的结果:
SELECT TOP 1
Password,
lower(convert(nvarchar(32), HashBytes('MD5', '123456'), 2)) AS md5pass1,
lower(convert(nvarchar(32), HashBytes('MD5', 'e10adc3949ba59abbe56e057f20f883e'), 2)) AS md5pass2,
lower(convert(nvarchar(32), HashBytes('MD5', Password), 2)) AS md5pass3
FROM Users
Run Code Online (Sandbox Code Playgroud)
结果是:

我希望得到 '14e1b600b1fd579f47433b88e8d85291' 结果......
我感谢你帮助我!
您不能对文本进行哈希处理,只能对字节进行哈希处理。HashBytes首先将输入字符串转换为字节。转换取决于数据类型是否为 Unicode 类型。我想Password是这样nvarchar,我看到你的文字是varchar.
决定您想要哪一种并始终如一地使用它。
| 归档时间: |
|
| 查看次数: |
3777 次 |
| 最近记录: |