Sqlserver中很多时候需要对数据进行加密、或校验。自Sqlserver 2000 时代起,网络上流传着一个MD5的加密函数,说实在的,很复杂,很负责!

但最重要的是,该函数在sqlserver中的执行效率太低!适应不了大量数据的处理。

 

我曾想过很多方法试着解决:C语言编写扩展存储过程、.NET程序集,虽然最后都可以解决问题,但终归有些繁琐,不是正经的原生方式。

Sqlserver2005 都出了这么久了,偶就没有发现这个hashbytes函数可以构建原生的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

 

相关文章:

  • 2022-12-23
  • 2021-11-30
  • 2022-12-23
  • 2021-09-19
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-06
  • 2022-02-05
  • 2022-03-05
  • 2022-12-23
  • 2022-12-23
  • 2021-12-10
  • 2021-09-28
相关资源
相似解决方案