首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Hashbytes命令输出

SQL Hashbytes命令输出
EN

Stack Overflow用户
提问于 2018-01-26 22:00:05
回答 1查看 52关注 0票数 0

为什么在SQL Server中,Hashbytes命令在以下代码中返回不同的响应?

代码语言:javascript
复制
Declare @Pass nvarchar
set @Pass='SampleHash'
Select HASHBYTES('MD5',@Pass)
Select HASHBYTES('MD5','SampleHash')

---------------------------------------
0x6F0AC8C187CEDB835A9BA373603BDA3F

0xC205AF5CE2048FF5C8C9A5B5ABDAF64E
---------------------------------------
EN

回答 1

Stack Overflow用户

发布于 2018-01-26 22:05:36

通过将字符串声明为unicode,您将获得相同的HASHBYTES结果:

代码语言:javascript
复制
Declare @Pass nvarchar(10)
set @Pass='SampleHash'
Select HASHBYTES('MD5',@Pass)
Select HASHBYTES('MD5',N'SampleHash')

0xB8F6457C129AEBCBB0D2E3097336ED1C

或者使用varchar而不是nvarchar

代码语言:javascript
复制
Declare @Pass varchar(10)
set @Pass='SampleHash'
Select HASHBYTES('MD5',@Pass)
Select HASHBYTES('MD5','SampleHash')

0xC205AF5CE2048FF5C8C9A5B5ABDAF64E

编辑:请注意,我还显式地将字符串值的长度声明为nvarchar(10)varchar(10),以匹配字符串SampleHash的长度。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48462804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档