IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 2021最新中高级Java面试题目,在SQL SERVER中实现RSA加解密函数 -> 正文阅读

[大数据]2021最新中高级Java面试题目,在SQL SERVER中实现RSA加解密函数

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



        begin



          if(@e*@d%@t=1)



             print cast(@e as varchar)+space(5)+cast(@d as varchar)



          set @d=@d+1



        end



end



   set @e=@e+1       



end

end




\--加密函数



[@key](https://gitee.com/vip204888/java-p7)?为上一个存储过程中选择的密码中的一个,[@p](https://gitee.com/vip204888/java-p7) ,[@q](https://gitee.com/vip204888/java-p7)?产生密钥对时选择的两个数。获取每一个字符的unicode值,然后进行加密,产生个字节的位数据



if object_id(‘f_RSAEncry’) is not null

drop function f_RSAEncry

go

create function f_RSAEncry

(@s varchar(100),@key int ,@p int ,@q int)

returns nvarchar(4000)

as

begin

declare @crypt varchar(8000)

 set @crypt=''

while len(@s)>0

begin

          declare @i bigint,@tmp varchar(10),@k2 int,@leftchar int



          select @leftchar=unicode(left(@s,1)),@k2=@key/2,@i=1



          while @k2>0



          begin



                 set @i=(cast(power(@leftchar,2) as bigint)*@i)%(@p*@q)



                 set @k2=@k2-1



          end 



          set @i=(@leftchar*@i)%(@p*@q)   



          set @tmp=''



          select @tmp=case when @i%16 between 10 and 15 then char( @i%16+55) else cast(@i%16 as varchar) end+@tmp,@i=@i/16



          from (select number from master.dbo.spt_values where type='p'  and number<10 )K



          order by  number desc



          set @crypt=@crypt+right(@tmp,6)



          set @s=stuff(@s,1,1,'')

end

return @crypt

end




\--解密



[@key](https://gitee.com/vip204888/java-p7)?为一个存储过程中选择的密码对中另一个数字,[@p](https://gitee.com/vip204888/java-p7) ,@q?产生密钥对时选择的两个数



if object_id(‘f_RSADecry’) is not null

drop function f_RSADecry

go

create function f_RSADecry

(@s nvarchar(4000),@key int ,@p int ,@q int)

returns nvarchar(4000)

as

begin

declare @crypt varchar(8000)

set @crypt=’’

while len(@s)>0

begin



   declare @leftchar bigint



   select @leftchar=sum(data1)



   from (select case upper(substring(left(@s,6), number, 1)) when 'A' then 10



                                                when 'B' then 11



                                                when 'C' then 12



                                                when 'D' then 13



                                                when 'E' then 14



                                                when 'F' then 15



            else substring(left(@s,6), number, 1)



            end* power(16, len(left(@s,6)) - number) data1



     from (select number from master.dbo.spt_values where type='p')K



     where number <= len(left(@s,6))



 ) L



declare @k2 int,@j bigint



   select @k2=@key/2,@j=1



while @k2>0



   begin

写在最后

以上分享的全部资料都可免费分享领取—— 【点击这里下载】

还有一份JAVA核心知识点整理(PDF):JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算…

 ) L



declare @k2 int,@j bigint



   select @k2=@key/2,@j=1



while @k2>0



   begin

写在最后

以上分享的全部资料都可免费分享领取—— 【点击这里下载】

还有一份JAVA核心知识点整理(PDF):JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算…

image

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-08 11:24:53  更:2021-08-08 11:26:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 19:05:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码