我正在试验商店程序,我收到以下错误:
字符串或二进制数据将被截断
我正在尝试将用户信息添加到表中,我想要哈希密码。我找到了这个guide并试图让它发挥作用
代码:
DECLARE @FirstName nvarchar(20) = 'Name'
DECLARE @LastName nvarchar(20) = 'LastName'
DECLARE @Email nvarchar(50) = 'Name.LastName@hot'
DECLARE @UserPassword nvarchar(12) = 'thepass'
DECLARE @Hash VARBINARY(MAX)
DECLARE @Salt VARBINARY(4) = CRYPT_GEN_RANDOM(4)
DECLARE @UserName nvarchar(4)
SET @UserName = SUBSTRING(@FirstName, 1, 2) + SUBSTRING(@LastName, 1, 2)
SET @Hash = 0x200 + @Salt + HASHBYTES('SHA2_512', CAST(@UserPassword AS varbinary(MAX)) + @Salt)
INSERT INTO USERS(Email,UserName,UserPassword,firstName,lastName) VALUES(@Email, @UserName, @Hash, @FirstName, @LastName)
表格如下:
在搜索网页后,我得到的信息是该列的哈希大小可能很大,但我检查了这是数据的结果:
0x0200511C118E7D3BF6F346BCE8F422B6832FDDC0A93A6C4533D79CC8776365E5D591750ADBC0587763494E7152DC68388B583F71182CA4AB6810ECD645381A7933B0785ACA8B
这是142个字符,低于500个最大值。 我做错了什么?