_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

在SQL SERVER中实现RSA加密算法

作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0

本篇关键词:加密算法实现

  /*本次修改增加了unicode的支持但是加密后依然显示为16进制数据因为进行RSA加密后所得到的unicode编码是无法显示的,所以密文依然采用16进制数据显示

  需要特别注意:如果要对中文进行加密,那么所选取的两个素数要比较大,两个素数的成绩最好要大于65536,即大于unicode的最大编码值

  在SQL SERVER中实现RSA加密算法(第二版)

  --判断是否为素数

if object_id('f_primeNumTest') is not null
 drop function f_primeNumTest
go
create function [dbo].[f_primeNumTest]
(@p int)
returns bit
begin
 declare @flg bit,@i int
 select @flg=1, @i=2
 while @i<sqrt(@p)
 begin
     if(@p%@i=0 )
     begin
        set @flg=0
       break
     end 
     set @i=@i+1
 end
 return @flg
end
go

  --判断两个数是否互素

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

    黑客防线网安服务器维护方案本篇连接:http://shop.rongsen.com.cn/show-10540-1.html
网站维护教程更新时间:2012-03-21 03:05:43  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer