文章评分
次,平均分 :
MD5 是一种常用的字符串加密方法,在 SQL Server 中可以使用函数 HashBytes() 实现 MD5 加密,具体说明如下:
函数 描述 返回值
HashBytes HashBytes ('加密方式', '待加密的值');
加密方式= MD2 | MD4 | MD5 | SHA | SHA1。返回值类型:varbinary(maximum 8000 byte
例如,使用 MD5 加密字符串 “123456”:
1 2 |
HashBytes('MD5','123456') --返回值:0xE10ADC3949BA59ABBE56E057F20F883E |
不过 HashBytes() 的返回值与 MD5 加密值还有一些不同,需要继续调用 sys.fn_sqlvarbasetostr() 函数进行转换,完整的 SQL 语句如下:
1 2 |
select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5','123456')),3,32) --返回值:e10adc3949ba59abbe56e057f20f883e |
转换之后的返回值就与第三方网站的 MD5 加密结果相同了。
不过需要注意的是,在使用以上方法进行 MD5 加密时,务必统一待加密字符串的类型。
因为从下面的示例来看,不同类型的字符串可能返回不同的加密结果。
1 2 3 4 5 6 7 8 |
select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5','123456')),3,32) --返回值:e10adc3949ba59abbe56e057f20f883e select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5',CONVERT(CHAR(50),'123456'))),3,32) --返回值:3bffa23c33da54eaa362f6f69879eb25 select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5',CONVERT(VARCHAR(50),'123456'))),3,32) --返回值:e10adc3949ba59abbe56e057f20f883e select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5',CONVERT(NVARCHAR(50),'123456'))),3,32) --返回值:ce0bfd15059b68d67688884d7a3d3e8c |
除特别注明外,本站所有文章均为交通人原创,转载请注明出处来自http://www.hijtr.com/sql-server-md5/
暂无评论