我使用 SQL 语句手动从旧数据导入到 MSSQL。
当我从原始文本密码散列到数据库中的 MVC 5 密码 HASH 字段时。我得到有趣的字符。如何将哈希插入 mvc5 身份表?MVC 5 表也使用 nvarchar
select HASHBYTES('SHA2_512', 'P@ssw0rd')as beforehash --looks good in result
0x6BFCC4026B5F162799A6DC8305C09DB9C1674AC616BD5C7422A45FBB6D0816AC163047C47A1F426F4F4C6B5B5042C671EABC4FDC7310FD5B183EEF59DC274604
declare @afterhash nvarchar(128)
set @afterhash=HASHBYTES('SHA2_512', 'P@ssw0rd')
select @afterhash as afterhash --funny character if put inside a variable or insert to data base
ﱫ˄彫✖ꚙ菜쀅릝柁왊봖瑜ꐢ뭟갖〖쑇ὺ潂䱏孫䉐燆볪�ၳ寽㸘姯⟜ц
hashbytes
返回一个varbinary
数据类型,您试图插入到nvarchar
多变的。
如果您不想将此值存储为二进制,但想要当前可以看到的文本,则有几个选项,具体取决于您是否要保留0x
二进制前缀:
declare @afterhash varbinary(500) = HASHBYTES('SHA2_512', 'P@ssw0rd')
select @afterhash as varbinaryValue
,convert(nvarchar(1000), @afterhash, 1) as nvarcharIncludePrefix
,convert(nvarchar(1000), @afterhash, 2) as nvarcharExcludePrefix
Output:
varbinaryValue - 0x6BFCC4026B5F162799A6DC8305C09DB9C1674AC616BD5C7422A45FBB6D0816AC163047C47A1F426F4F4C6B5B5042C671EABC4FDC7310FD5B183EEF59DC274604
nvarcharIncludePrefix - 0x6BFCC4026B5F162799A6DC8305C09DB9C1674AC616BD5C7422A45FBB6D0816AC163047C47A1F426F4F4C6B5B5042C671EABC4FDC7310FD5B183EEF59DC274604
nvarcharExcludePrefix - 6BFCC4026B5F162799A6DC8305C09DB9C1674AC616BD5C7422A45FBB6D0816AC163047C47A1F426F4F4C6B5B5042C671EABC4FDC7310FD5B183EEF59DC274604
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)