SUBSTRING(SYS.FN_SQLVARBASETOSTR(HASHBYTES('MD5',CONCAT('abc','sdj'))),3,32)
字符串 sbdsdj MD5加密后为
函数 HashBytes ( '<algorithm>', { @input | 'input' } )
<algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1
algorithm 标识用于对输入执行哈希操作的哈希算法。这是必选参数,无默认值。需要使用单引号
@input 指定包含要对其执行哈希操作的数据的变量。@input 的数据类型为 varchar、nvarchar 或 varbinary(如果是char 或nchar会报错)
input 指定要执行哈希操作的字符串
返回值 varbinary(最大为8000个字节)
允许的输入值限制为 8000 个字节。输出符合算法标准:MD2、MD4 和 MD5 为 128 位(即 16 个字节);SHA 和 SHA1 为 160 位(即 20 个字节)
HashBytes生成的结果为:0x45E5A2F3E816457CE47AF8E04C1E3C71,16进制的数值,去掉“0x”转换为小写值就完全与MD5值吻合了,在此需要用另一个函数(sys.fn_sqlvarbasetostr)把varbinary的值转换为varchar类型
SUBSTRING(SYS.FN_SQLVARBASETOSTR(HASHBYTES('MD5',CONCAT('abc','sdj'))),3,32)
结果