SQL HASHBYTES 函数加密

select convert(varchar(128), HASHBYTES('MD5', 'abcde212312'), 2)

select substring(sys.fn_VarBinToHexStr(HASHBYTES('MD5' , 'abcde212312')),3,200)

输入参数的数据类型为 varchar、nvarchar 或 varbinary,输入参数的字节数量不能超过8000bytes.

HashBytes函数的返回值的数据类型是 varbinary ,不同的算法返回的字节长度是不同的。

hashbytes函数功能为:返回一个字符,
通过 MD2、MD4、MD5、SHA、SHA1、SHA2_256、SHA2_512方式加密后的返回值

hashbytes(‘参数1’,’参数2’)

参数1:
输入加密类型 例:MD5
参数2:
输入待加密的字符串(加密字符串最大值为 8000字节)
返回值:
返回值最大为8000字节
注意事项:
当输入加密类型,异常时,返回NULL

二,影响HashBytes函数的因素

1,HashBytes函数受Data Type 的影响

select HASHBYTES('SHA1',N'123abc') as HashNChar, HASHBYTES('SHA1','123abc') as HashChar;

2,HashBytes函数受字符大小写的影响

select hashbytes('SHA1','eric') as UpperCase,hashbytes('SHA1','Eric') as LowerCase

3,输入字符串的大小不能超过8000Bytes,如果输入字符串的字节数量大于8000Bytes,那么HashBytes 会将超过8000Bytes的字符舍弃,只对前8000Bytes进行Hash计算。SQL Server 不会提供任何提示或warning,在使用时,必须保证,输入字符串的字节数量不能超过8000。

如果是Unicode字符,那么输入字符串字符数量不能超过4000个;如果是varchar字符,那么输入字符串的数量不能超过8000个。

select hashbytes('SHA1',replicate('eric',2000)) ,hashbytes('SHA1',replicate('eric',4000))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值