U8用户密码sql实现

U8加密:一个SHA1+Base64+一个特殊字符结尾

 

结果:fEqNCco3Yq9h5ZUglD3CZJT4lBs=

--SQL版
CREATE FUNCTION [dbo].[FnBase64Encode](@src varchar(MAX))
RETURNS VARCHAR(MAX)
AS
BEGIN
	DECLARE @bin VARBINARY(MAX)
	SET @bin=CONVERT(VARBINARY(MAX), @src)
	RETURN CAST(N'' AS XML).value('xs:base64Binary(xs:hexBinary(sql:variable("@bin")))', 'varchar(max)')
END
Go


SELECT dbo.FnBase64Encode( HASHBYTES('SHA1','123456'))+CHAR(3)

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using System.Security.Cryptography;
using System.IO;
using System.Text;

public partial class UserDefinedFunctions
{
    [Microsoft.SqlServer.Server.SqlFunction]
    public static SqlString U8password(string pwd)
    {
        byte[] MessageBytes = UnicodeEncoding.UTF8.GetBytes(pwd);
        SHA1Managed SHhash = new SHA1Managed();

        byte[] HashValue = SHhash.ComputeHash(MessageBytes);
 
        return new SqlString(Convert.ToBase64String(HashValue) +(char)3);

    }
 
}

编译创建以上程序集,创建以下函数(CLR版)


CREATE FUNCTION [dbo].[U8password](@pwd [NVARCHAR](1000))
RETURNS [NVARCHAR](1000) WITH EXECUTE AS CALLER
AS 
EXTERNAL NAME [U8].[UserDefinedFunctions].[U8password]
GO
 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值