SQL MD5的疑惑

Luohui109 2014-08-12 11:09:17
DECLARE @IDNO NVARCHAR(50)
SELECT @IDNO='19270094'

SELECT smd5 = SUBSTRING(sys.fn_VarBinToHexStr(hashbytes('MD5', @IDNO)),3,32) --32位
SELECT smd5 = SUBSTRING(sys.fn_VarBinToHexStr(hashbytes('MD5', '19270094')),3,32) --32位

SELECT smd5 = SUBSTRING(sys.fn_VarBinToHexStr(hashbytes('MD5', @IDNO)),11,16) --16位
SELECT smd5 = SUBSTRING(sys.fn_VarBinToHexStr(hashbytes('MD5', '19270094')),11,16) --16位

这有什么区别??
...全文
92 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
playwarcraft 2014-08-12
  • 打赏
  • 举报
回复
一个字串是nvarchar,一个是varchar
andysun88 2014-08-12
  • 打赏
  • 举报
回复
你试试这样:
DECLARE @IDNO nvarchar(50)
         set @IDNO='19270094'
         
         SELECT smd5 = SUBSTRING(sys.fn_VarBinToHexStr(hashbytes('MD5', @IDNO)),3,32)    --32位  
         SELECT smd5 = SUBSTRING(sys.fn_VarBinToHexStr(hashbytes('MD5',convert(nvarchar,'19270094'))),3,32)    --32位
原因还在分析
tjw687492 2014-08-12
  • 打赏
  • 举报
回复
引用 2 楼 playwarcraft 的回复:
一个字串是nvarchar,一个是varchar
楼上正解

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧