CREATE FUNCTION [dbo].[MD5](@src varchar(255),@type int)
RETURNS varchar(255)
AS
BEGIN
DECLARE @md5 varchar(34)
DECLARE @return varchar(50)
SET @md5 = upper(sys.fn_VarBinToHexStr(hashbytes('MD5', @src)));
if @type=16
set @md5= SUBSTRING(@md5,11,16) --16位
else
set @md5= SUBSTRING(@md5,3,32)--32位
set @return=''
while LEN(@md5) > 0
begin
if LEN(@return) > 0
set @return=@return+'-'+SUBSTRING(@md5,1,2)
else
set @return=SUBSTRING(@md5,1,2)
set @md5=stuff(@md5,1,2,'')
end
RETURN @return
END