就业数据资源平台
当前位置:首页 > 数据库技术
数据库辅导:在SQLSERVER中实现RSA加密算法

/*本次修改增加了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 )
  beginwww.Examw.CoM
  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
就业数据资源平台