pha*_*unk 1 passwords hash sql-server-2008
我像这样直接在SQL中哈希密码:
DECLARE @HashThis nvarchar(4000);
SET @HashThis = 'SecretPizza'
INSERT into Users (UserId,Password)
Values ('CryptTest',HASHBYTES('SHA1', @HashThis))
Run Code Online (Sandbox Code Playgroud)
结果:

当我尝试将SHA1算法更改为SHA2_256或时SHA2_512,出现以下错误:

问题1-这真的应该给我中文字符吗?
问题2-这些是有效的算法,所以为什么我不能使用它们,为什么加密设置@HashThis为null?
问题1:之所以会得到“像中文一样”的字符,是因为要将HASHBYTES返回的varbinary值插入nvarchar列,因此SQL Server试图将字节解释为Unicode代码点(字符)。
问题2:SQL Server 2012之前不支持-请参阅SQL Server 2008 R2 HASHBYTES SHA2返回null
| 归档时间: |
|
| 查看次数: |
7603 次 |
| 最近记录: |