在SQL SERVER中实现RSA加解密函数

本文介绍了如何在SQL SERVER中使用存储过程和函数实现RSA加密和解密。首先,定义了一个用于判断两个数是否互素的函数f_isNumsPrime,接着创建了生成密钥对的存储过程p_createKey,以及用于加密和解密的函数f_RSAEncry和f_RSADecry。这些函数可以帮助在数据库中进行安全的数据加密操作。
摘要由CSDN通过智能技术生成

–判断两个数是否互素

if object_id(‘f_isNumsPrime’) is not null

drop function f_isNumsPrime

go

create function f_isNumsPrime

(@num1 int,@num2 int)

returns bit

begin

declare @tmp int,@flg bit

set @flg=1

while (@num2%@num1<>0)

begin

select @tmp=@num1,@num1=@num2%@num1,@num2=@tmp

end

if @num1=1

set @flg=0

return @flg

end

go

–产生密钥对

if object_id(‘p_createKey’) is not null

drop proc p_createKey

go

create proc p_createKey

@p int,@q int

as

begin

declare @n bigint,@t bigint,@flag int,@d int

if dbo.f_primeNumTest(@p)=0

begin

print cast(@p as varchar)+‘不是素数,请重新选择数据’

return

end

if dbo.f_primeNumTest(@q)=0

begin

print cast(@q as varchar)+‘不是素数,请重新选择数据’

return

end

print ‘请从下列数据中选择其中一对,作为密钥’

select @n=@p*@q,@t=(@p-1)*(@q-1)

declare @e int

set @e=2

while @e<@t

begin

if dbo.f_isNumsPrime(@e,@t)=0

begin

set @d=2

while @d<@n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值