我有一个表格TBLxx,列xxANSI和xxMD5 我在下面用来计算xxANSI的校验和MD5
update i
set [xxMD5] = HASHBYTES ('MD5', [xxANSI])
from TBLxx i
我在MD5专栏中得到的结果是一组特殊的字符,例如“#8U3š”PÍÛ'>÷,¤Ä“ 而如果我在应用HASHBYTES函数时对该列进行选择,则得到一个值“0x233855339A5D50CD0CDB279BF782A4C4”
select top 1 xxANSI, xxMD5, hashbytes('MD5', xxMD5)
from TBLxx
"saco_other_test", "’3è@GÔ¦l
VŒ$t>", "0x169233E8401947D4A66C0D568C24743E"
(列xxMD5的值中有一个换行符,这是上面换行的原因)
有谁知道为什么会这样?我怎么能避免这个?我想在表格栏中输入“0x169233E8401947D4A66C0D568C24743E”这样的值。
提前致谢
答案 0 :(得分:1)
我认为您的问题可能是您正在将哈希字节结果插入VARCHAR
列。您应该使用BINARY
类型来存储哈希字节结果。
看到区别:
select hashbytes('MD5','saco_other_test')
select cast(hashbytes('MD5','saco_other_test') as varchar(255))