Sqlserver中很多时候需要对数据进行加密、或校验。自Sqlserver 2000 时代起,网络上流传着一个MD5的加密函数,说实在的,很复杂,很复杂!但最重要的是,该函数在sqlserver中的执行效率太低!适应不了大量数据的处理。这个hashbytes函数可以构建原生的MD5函数。
谨记、谨记、谨记、谨记
如何创建MD5函数代码如下:
--创建md5函数
CREATE FUNCTION [dbo].[MD5](@src varchar(255) )
RETURNS varchar(255)
AS
BEGIN
DECLARE @md5 varchar(34)
SET @md5 = sys.fn_VarBinToHexStr(hashbytes('MD5', @src));
--RETURN SUBSTRING(@md5,11,16) --16位
RETURN SUBSTRING(@md5,3,32) --32位
END
GO
创建好的函数去了哪里?:
创建好的函数如何使用?:如下
自定义的标量值函数MD5与HashBytes()函数使用效果上的区别: