ITPub博客

首页 > Linux操作系统 > Linux操作系统 > SQL Server 2005 MD5 函数

SQL Server 2005 MD5 函数

原创 Linux操作系统 作者:Learnsql 时间:2009-10-14 17:13:50 0 删除 编辑

------------------------------------------
--     SQL Server 2005 MD5 函数 
------------------------------------------
IF OBJECT_ID('dbo.fnCreateMD5') IS NOT NULL
 DROP FUNCTION dbo.fnCreateMD5;
GO

CREATE FUNCTION dbo.fnCreateMD5
 (
  @pmInputStr  VARCHAR(MAX), --要进行MD5的原字符串
  @pmReturnLen INT  =32        --返回生成MD5串后所要截取的长度
 )
RETURNS VARCHAR(32)      --MD5转换为字符串后为32位
WITH RETURNS NULL ON NULL INPUT
AS
BEGIN
 DECLARE @ReturnMD5 NVARCHAR(32)
 SELECT @ReturnMD5=SUBSTRING(CONVERT(NVARCHAR(34),sys.fn_VarBinToHexStr(HashBytes('MD5',@pmInputStr))),3,@pmReturnLen);
 RETURN @ReturnMD5
END;

GO

-- Input Jim   Return d54b3c8fcd5ba07e47b400e69a287966
SELECT dbo.fnCreateMD5('Jim',Default) AS MD5;

--Input Jim,12 Return d54b3c8fcd5b
SELECT dbo.fnCreateMD5('Jim',12) AS MD5;


/*
 HashBytes 函数:
  返回输入的MD2、MD4、MD5、SHA 或 SHA1哈希值
  语法:HashByts('',{@Input|'Input})
    :::=MD2|MD4|MD5|SHA|SHA1
          :@input|'input' 指定包含要对其执行哈希操作的数据变量|字符串 其数据类习为:Varchar  NVARCHAR  VARBINARY
        返回值: varbinary   最大为8000个字符

 sys.fn_VarBinToHexStr 函数:
  系统内置函数,转换varbinary 可变长度二进制型数据到 16 进制字符串

*/

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15042150/viewspace-616557/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-08-01

  • 博文量
    20
  • 访问量
    52838