2022-03-25 10:53:05 版本 : Sql Server内置函数实现MD5加密 - 冬雨在路上 - 博客园
作者: 周杨 于 2022年03月25日 发布在分类 / 计算机应用 / 数据库 / SQLSERVER 下,并于 2022年03月25日 编辑
 历史版本

备注 修改日期 修改人
CREAT 2022-03-25 10:53:05[当前版本] 系统管理员


--MD5加密
--HashBytes ('加密方式', '待加密的值')
--加密方式= MD2 | MD4 | MD5 | SHA | SHA1    
--返回值类型:varbinary(maximum 8000 bytes)
select HashBytes('MD5','123456')
--HashBytes生成的结果为:0xE10ADC3949BA59ABBE56E057F20F883E

--一般工具生成的都是没有0x和是小写的,16进制的数值,去掉“0x”转换为小写值就完全与MD5值吻合了,
--在此需要用另一个函数(sys.fn_sqlvarbasetostr)把varbinary的值转换为varchar类型的,
select sys.fn_sqlvarbasetostr(HashBytes('MD5','123456'))
--结果:0xe10adc3949ba59abbe56e057f20f883e        截取去掉0x

select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5','123456')),3,32)
--结果就是完整的MD5值:e10adc3949ba59abbe56e057f20f883e


在SQL Server 2005下自带的函数HashBytes() ,此函数是微软在SQL Server 2005中提供的,HashBytes() 函数的返回结果是VarBinary类型(以 0x 开头 16 进制形式的二进制数据)。通常情况下,我们需要的都是字符串型的数据,直接存入varchar字段类型的列或者nvarchar的列,就会出现乱码,需要类型转化

--MD5加密
--HashBytes ('加密方式', '待加密的值')
--加密方式= MD2 | MD4 | MD5 | SHA | SHA1    
--返回值类型:varbinary(maximum 8000 bytes)
select HashBytes('MD5','123456')
--HashBytes生成的结果为:0xE10ADC3949BA59ABBE56E057F20F883E

--一般工具生成的都是没有0x和是小写的,16进制的数值,去掉“0x”转换为小写值就完全与MD5值吻合了,
--在此需要用另一个函数(sys.fn_sqlvarbasetostr)把varbinary的值转换为varchar类型的,
select sys.fn_sqlvarbasetostr(HashBytes('MD5','123456'))
--结果:0xe10adc3949ba59abbe56e057f20f883e        截取去掉0x

select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5','123456')),3,32)
--结果就是完整的MD5值:e10adc3949ba59abbe56e057f20f883e

--MD5加密
--HashBytes ('加密方式', '待加密的值')
--加密方式= MD2 | MD4 | MD5 | SHA | SHA1    
--返回值类型:varbinary(maximum 8000 bytes)
select HashBytes('MD5','123456')
--HashBytes生成的结果为:0xE10ADC3949BA59ABBE56E057F20F883E

--一般工具生成的都是没有0x和是小写的,16进制的数值,去掉“0x”转换为小写值就完全与MD5值吻合了,
--在此需要用另一个函数(sys.fn_sqlvarbasetostr)把varbinary的值转换为varchar类型的,
select sys.fn_sqlvarbasetostr(HashBytes('MD5','123456'))
--结果:0xe10adc3949ba59abbe56e057f20f883e        截取去掉0x

select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5','123456')),3,32)
--结果就是完整的MD5值:e10adc3949ba59abbe56e057f20f883e


历史版本-目录  [回到顶端]
    知识分享平台 -V 5.1.4 -大信谛威