武汉大学应用密码学RSA加密解密大作业

合集下载

des作业答案和RSA作业

des作业答案和RSA作业

1.第一题DE 2C 3E 541101 1110 0010 1100 0011 1110 0101 0100A0 9B 02 5B1010 0000 1001 1011 0000 0010 0101 1011经过置换1 左移一位后变成c1和d1 0011000 01100011 1-8 1100010 00010010 9-16 0100010 00101101 17-24 1101010 0100 25-281110010 11001010 29-36 1000011 00011111 37-44 1110100 01001111 45-52 1111101 1011 53-56经置换2变成k1(12 A6 D1 C7 AD 7A)c1和d1继续左移1位变成c2和d2 00010010 1100011010100110 0010010011010001 01011010100011000111 1001010010101101 0011111001111010 100111110111经置换2变成k2(A8 68 15 C5 D7 9B)c2和d2继续左移2位后变成c3和d3 10101000 0001100001101000 1001000100010101 01101010001111000101 0101000011010111 1111101010011011 011111011110经置换2变成k3(05 2F 28 DF 16 69)0000010100101111001010001101111100010110011010012.在DES 算法中,S2盒的输入为101101,求S2盒输出 01004.1 在使用RSA 的公钥体制中,已截获发给某用户的密文为c=10,该用户的公钥pk = 5, n=35,那么明文m 等于多少?为什么能根据公钥可以破解密文?解:n=p*q (p 和q 都是素数),n=35 故解出p=5 ,q=7 ;()()()1124n p q ϕ=--=;又因为()1mod pk sk n ϕ*≡,而pk=5 故可解出sk=5;mod sk m c n ==105 mod 35=5 。

实验一 RSA加解密

实验一 RSA加解密

实验一密码学相关实验之RSA加解密算法的实现一、实验目的在本实验中,用VC/ C/C++/Java实现RSA的加解密算法。

完成实验后将能够深入理解RSA 加解密算法及其在VC/ C/C++/Java中的实现过程。

二、实验条件熟悉VC/ C/C++/Java开发环境和有关RSA算法的有关知识;一台安装有VC/ C/C++/Java的计算机。

三、实验内容RSA算法实验1、生成密钥参数①选取两互异大素数:p和q②计算 N=p×q 和φ(N)=(p-1) ·(q-1)③选一整数 e:满足1< e<φ(N), gcd(φ(N), e)=1④在模φ(N)下,计算e的乘法逆元d:e · d = 1 mod φ(N)⑤E、公钥pk=(N, e),私钥sk=d (p, q不再需要,可以销毁)2、加密算法给定一个整数 M < N,计算C = M e mod N3、解密算法M = C d mod N四、实验要求提示1. 从键盘输入两个素数 p,q,并输出参数 N, φ(N), e, d2.从键盘输入明文数据 m,计算出密文数据 c3. 从键盘输入密文数据 c,计算出明文数据 m.4.如何判断一个数是素数5.如何判断两个数互素6.乘法逆元怎么实现7.当p=7,q=17,e=5,d=77 ,加密m=19. 实验得出结果。

8.如果加密的消息为char类型,如何实现加解密?(不强制要求做,但能实现的同学有加分!!)9.认真填写实验报告,电子版,下次课上交。

以下以VC为例:1.实验环境的建立主要内容:在VC中建立一个项目。

操作步骤:(1)进入VC环境;(2)在VC环境中,执行“File | New”命令,在“New”对话框中(如图1)选择“Projects”页,在其左侧的列表框中选择“MFC AppWizard [exe]”,在右侧的“Project name”文本框中输入新的项目名称“RSA加解密算法”,在“Location”文本框中选择项目的存储路径(比如选择“d:\rsa”)。

(完整word版)武汉大学现代密码学试卷(含答案)

(完整word版)武汉大学现代密码学试卷(含答案)

武汉大学计算机学院信息安全专业2004级“密码学"课程考试题(卷面八题,共100分,在总成绩中占70分)一、单表代替密码(10分)①使加法密码算法称为对合运算的密钥k称为对合密钥,以英文为例求出其对合密钥,并以明文M=WEWILLMEETATMORNING 为例进行加解密,说明其对合性。

②一般而言,对于加法密码,设明文字母表和密文字母表含有n个字母,n为≥1的正整数,求出其对合密钥k。

二、回答问题(10分)①在公钥密码的密钥管理中,公开的加密钥Ke和保密的解密钥Kd的秘密性、真实性和完整性都需要确保吗?说明为什么?②简述公钥证书的作用?三、密码比较,说明两者的特点和优缺点。

(10分)对DES和AES进行比较,说明两者的特点和优缺点。

四、设A=[01,02,03,04]T,B=[b0,b1,b2,b3]T,利用反对数表查表计算AES中的列混淆,求出B。

(10分)五、设g(x)=x4+x2+1,g(x)为GF(2)上的多项式,以其为连接多项式组成线性移位寄存器。

画出逻辑框图。

设法遍历其所有状态,并写出其状态变迁及相应的输出序列。

(15分)六、考虑RSA密码体制:(15分)1.取e=3有何优缺点?取d=3安全吗?为什么?2.设n=35,已截获发给某用户的密文C=10,并查到该用户的公钥e=5,求出明文M。

七、令素数p=29,椭圆曲线为y2=x3+4x+20 mod 29,求出其所有解点,并构成解点群,其解点群是循环群吗?为什么?。

(15分)八、在下述站点认证协议中函数f起什么作用?去掉f行不行?为什么?(15分)设A,B是两个站点,A是发方,B是收方。

它们共享会话密钥Ks ,f是公开的简单函数。

A认证B是否是他的意定通信站点的协议如下:1.A产生一个随机数RN,并用Ks对其进行加密:C=E(RN,Ks),并发C给B.同时A对RN进行f变换,得到f(RN)。

2.B收到C后,解密得到RN=D(C,Ks)。

武汉大学密码学实验报告

武汉大学密码学实验报告

武汉大学计算机学院课程实验(设计)报告课程名称:密码学专业:信息安全姓名:学号:学期:RSA加密算法RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。

在非对称加密(或称公开密钥加密)体系中,密钥被分解为一对,即公开密钥(公钥)和私有密钥(私钥)。

这对密钥中任何一把都可以作为公开密钥,通过非保密方式向他人公开,而另一把作为私有密钥,加以妥善保存。

公开密钥用于加密,私有密钥用于解密,私有密钥只能由生成密钥的交换方掌握,公开密钥可广泛公布,但它只对应于生成密钥的交换方。

非对称加密方式可以使通信双方无须事先交换密钥就可以建立安全通信,广泛应用于身份认证、数字签名等信息交换领域。

非对称加密体系一般是建立在某些已知的数学难题之上,是计算机复杂性理论发展的必然结果。

最具有代表性是RSA公钥密码体制。

算法的基本思路如图1所示,过程是首先随意选择两个大的素数p和q,p不等于q,计算N=pq。

根据欧拉函数,求得r = (p-1)(q-1)选择一个小于r 的整数 e,求得e 关于模r 的模逆元素,记为为d。

将 p 和 q 的记录销毁。

(N,e)是公钥,(N,d)是私钥。

然后加密消息,对于消息M采用模幂运算C ≡ Me(mod N)获得密文M;最后对密文C采用解密公式M= Cd(mod N)。

图1在设计RSA程序时首先由RandomPrime()获得随机数p,q,,其中p,q是由IsPrime()函数看它们是否能够除2,3,5,7,判断是否是素数。

利用GenKeyPair()函数通过GetDNum()GetENum()分别获得<e,m>和<d,m>。

当用户输入要加密的字符串后,利用Encryptor()函数可以对字符串进行加密,然后用Dencryptor()函数进行解密。

实验4_公钥密码RSA加解密算法模拟程序

实验4_公钥密码RSA加解密算法模拟程序

实验四:公钥密码RSA加解密算法模拟程序
一、实验目的
1、编写简单的RSA加解密程序。

2、理解公钥密码体系的相关知识,尤其是RSA算法的加密与解密计算过程。

二、实验内容
编写程序实现RSA加解密算法,并通过demo验证算法的正确性。

具体要求如下:
1)能够对指定字符串加密并对加密后的密文进行解密,通过对比解密后的字符串与源字符串,证明程序加密与解密的正确性。

2)输出与加解密相关的各项参数,例如公钥、私钥、通过乘积运算构成大整数的两个素数等。

三、实验步骤及实验结果
1、实验步骤如下:
1)利用参考代码在VS2008开发工具编中写一个控制台程序
2)经过编译、链接生成可执行程序,运行程序,结果显示为:(因为调用Random函数,所以每次运行的结果都会不一样)
3)此外生成界面如下,输入明文
过乘积运算构成大整数的两个素数
5)按下“加密”,得到加密的密文;按下“解密”,得到解密的明文
四、实验结果分析
通过编写模拟RSA的加密与解密的程序,成功加密明文,得到加密的密文,并且解密后得到相应明文。

五、实验心得体会
通过学习的相应的RSA的加密与解密的知识,学会了RSA的加密解密的具体步骤。

同时了解了相关加密解密的过程。

密码学-RSA加密解密算法的实现课程设计报告

密码学-RSA加密解密算法的实现课程设计报告

密码学课程报告《RSA加密解密算法》专业:信息工程(信息安全)班级:1132102学号:************姓名:***指导老师:***时间:2014年1月10号一、课程设计的目的当前最著名、应用最广泛的公钥系统RSA是在1978年,由美国麻省理工学院(MIT)的Rivest、Shamir和Adleman在题为《获得数字签名和公开钥密码系统的方法》的论文中提出的。

RSA算法是第一个既能用于数据加密也能用于数字签名的算法,因此它为公用网络上信息的加密和鉴别提供了一种基本的方法。

它通常是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册,人们用公钥加密文件发送给个人,个人就可以用私钥解密接受。

为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。

公钥加密算法中使用最广的是RSA。

RSA算法研制的最初理念与目标是努力使互联网安全可靠,旨在解决DES算法秘密密钥的利用公开信道传输分发的难题。

而实际结果不但很好地解决了这个难题;还可利用RSA来完成对电文的数字签名以抗对电文的否认与抵赖;同时还可以利用数字签名较容易地发现攻击者对电文的非法篡改,以保护数据信息的完整性。

此外,RSA加密系统还可应用于智能IC卡和网络安全产品。

二、RSA算法的编程思路1.确定密钥的宽度。

2.随机选择两个不同的素数p与q,它们的宽度是密钥宽度的1/2。

3.计算出p和q的乘积n 。

4.在2和Φ(n)之间随机选择一个数e , e 必须和Φ(n)互素,整数e用做加密密钥(其中Φ(n)=(p-1)*(q-1))。

5.从公式ed ≡ 1 mod Φ(n)中求出解密密钥d 。

6.得公钥(e ,n ), 私钥 (d , n) 。

7.公开公钥,但不公开私钥。

8.将明文P (假设P是一个小于n的整数)加密为密文C,计算方法为:C = Pe mod n9.将密文C解密为明文P,计算方法为:P = Cd mod n然而只根据n和e(不是p和q)要计算出d是不可能的。

rsa加密算法详解及例题

rsa加密算法详解及例题

RSA加密算法详解及例题
RSA加密算法是一种非对称加密算法,其安全性基于对极大整数做因数分解的困难性。

以下是RSA加密算法的详解及例题:
1. 密钥生成:
* 随机选择两个质数P和Q,越大越安全。

* 计算它们的乘积N=P*Q。

* 计算欧拉函数φ(N)=(P-1)*(Q-1)。

* 随机选择一个整数E,条件是1<E<φ(N),且E与φ(N)互质。

* 计算E对于φ(N)的模反元素D,使得EDmodφ(N)=1,即D=E-1modφ(N)。

* 公钥为(E, N),私钥为(D, N)。

2. 加解密过程:
* 加密:明文M进行加密后得到密文C,计算公式为C=MemodN。

* 解密:将密文C进行解密后得到明文M,计算公式为M=CdmodN。

例题:在RSA加密体制中,已知素数P=7,Q=11,公钥E=13,试计算私钥D并给出对明文M=5的加密,求其密文。

解:首先,根据上述算法进行密钥生成。

根据素数P和Q得到N=77。

计算φ(N)=60。

因为E小于φ(N)且与φ(N)互质,选择E=13作为公钥。

根据公式计算D模反元素得到D=7。

现在有公钥(E, N)=(13, 77)和私钥(D, N)=(7, 77)。

接下来,用公钥加密明文M=5得到密文C=5^13mod77=15。

所以,密文为15。

此例题仅展示了RSA加密算法的基本原理和步骤,实际应用中需要考虑更多安全因素和操作细节。

实验二 RSA加密解密

实验二 RSA加密解密

实验二 RSA加密解密实验目的1.了解RSA算法的基本原理2.掌握RSA算法的实现方法3.通过实际编程了解非对称密码算法RSA的加密和解密过程,同时锻炼编程能力。

实验原理RSA算法的加密和解密过程在RSA算法中,每个实体有自己的公钥(e,n)及私钥(d,n),其中n=p*q,p,q是两个大素数,e*d=1modф(n),显然e应该满足gcd(e,ф(n))=1。

实体B加密消息m,将密文在公开信道上传送给实体A。

实体A接到密文后对其解密。

具体算法如下。

1)公钥的生成算法RSA的公钥生成算法十分简单,可以分为四步:(1)选择两个素数,p和q;(2)计算n=p×q和o=(p-1)×(q-1);(3)选择一个与o互质的数e;(4)找出一个d,使得e×d=1modz。

公开密钥是由(e,n)构成,私有密钥由(d,n)构成。

2)加密算法实体B的操作如下:(1)得到实体A的真实公钥(e,n);(2)把消息表示成整数m,0<m≤n-1;(3)使用平方-乘积算法,计算C=Ek(m)=memodn;(4)将密文C发送给实体A。

核心代码#include<iostream>#include<cmath>using namespace std;void main(){int p,q;cout<<"请输入两个较大的素数:"<<endl;cin>>p>>q;cout<<"p="<<p<<",q="<<q<<endl;int n,o;n=p*q;o=(p-1)*(q-1);cout<<"n="<<n<<",o="<<o<<endl;cout<<"请从【0,"<<o-1<<"】中选择一个与"<<o<<"互素的数e:"<<endl;int e,i;float d;cin>>e;for(i=1;;i++){d=(float)(o*i+1)/e;if(d-(int)d==0)break;}cout<<"e="<<e<<",d="<<d<<endl;cout<<"公开密钥Pk={e,n}={"<<e<<","<<n<<"}"<<endl; cout<<"秘密密钥Sk={d,n}={"<<d<<","<<n<<"}"<<endl; cout<<endl;cout<<"请输入要加密的正整数(以-1结束):"<<endl; int m1[500],m3[500],m4[7500];double m2[500];int j;for(j=0;j<500;j++){cin>>m1[j];if(m1[j]==-1)break;m2[j]=pow(m1[j],e);m4[j]=m2[j]/n;m3[j]=m2[j]-m4[j]*n;}cout<<"密文为:"<<endl;int k;for(k=0;k<j;k++)cout<<m3[k]<<" ";cout<<endl;}实验总结与心得体会通过做这个实验充分了解其原理,在这个实验中,这个实验中公钥和私钥的产生没什么问题,而在加密与解密的过程中,由于中间结果会非常大,pow函数不能实现功能,所以必须将中间结果对n取模,才能使计算切实可行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 对RSA算法的理解RSA加密算法是一种非对称加密算法,它基于一个非常简单的数论思想:“将两个素数乘起来是很容易的,但是分解该乘积是非常困难的”。

1.1加解密步骤(1)生成公钥和私钥a)随机生成两个不相等的大素数p和q,计算N=p*q;b)根据欧拉函数,求出φ=(p-1)*(q-1);c)选择一个小于r的整数e,求e关于r的模反元素d使得e*d mod φ=1得到公钥<N,e>,私钥<N,d>(2)加密给定明文m,公钥<N,e>,计算密文c = m e(N)。

(3)解密给定密文c,私钥<N,d>,计算明文m’ = c d(N)。

1.2素性检验RSA算法的实现难点之一是生成大素数,这就需要生成一个大数并对其进行素性检验。

素性检验有很多种方法。

其中包括确定性方法和随机方法。

确定性方法有试除法(埃拉托斯特尼筛法),卢卡斯-莱默检验法和AKS素数测试。

常见的随机方法有费马素性检验,米勒-拉宾检验和欧拉-雅科比测试。

本次作业采用就是米勒-拉宾检验方法。

米勒-拉宾(Miller Rabin) 算法原理:要测试N 是否为素数,首先将N-1 分解为2s d。

在每次测试开始时,先随机选一个介于[1, N-1]的整数a,之后如果对所有的r∈[0, s-1],若a d mod N ≠ 1 且a2^rd mod N ≠1,则N 是合数。

否则,N 有3/4 的概率为素数。

1.3安全问题(1)公共模数攻击。

每个人具有相同的r,但有不同的指数e和d,这是不安全的。

(2)低加密指数攻击。

如果选择了较低的e值,虽然可以加快计算速度,但存在不安全性。

(3)低解密指数攻击。

如果选择了较低的d值,也是不安全的。

(4)选择密文攻击。

如A想让T对一个T不愿意签名的消息m’签名,A首先选择一个任意值x,计算y=x e(mod r),然后要求T对m=ym’签名,A最后计算(m d mod r)x-1 mod r =( ym’) d x-1mod r= m’d mod r。

还有一些不是直接对RSA的算法本身进行的攻击,如中间人攻击、时间攻击、边信道攻击等。

2.具体实现2.1函数说明void ProducePrime(JTextField prime):使用JA V A的Biginteger生成512位的大数,再用Miller Robin算法检验是否是素数。

参数prime即为生成的大素数。

boolean MillerRobin(BigInteger n):用Miller Robin检验判断大数n是否是素数。

BigInteger modex(BigInteger a, BigInteger b, BigInteger n):模幂运算,计算a b mod nBigInteger inverse(BigInteger a, BigInteger b):求逆运算,计算a-1 ( b )String Encode(String Plaintext, BigInteger n, int nLen, int m, JTextField e):加密,用公钥(n,e)对明文Plaintext加密。

String Decode(String Ciphertext, BigInteger n, int m, JTextField d):解密,用私钥d对密文Ciphertext解密。

2.2JA V A代码import java.math.BigInteger;import java.util.Random;import java.util.Scanner;import javax.swing.JTextField;public class RSA {public static void main(String[] args) {String s;JTextField p = new JTextField(35);JTextField q = new JTextField(35);JTextField e = new JTextField(35);JTextField d = new JTextField(35);ProducePrime(p);ProducePrime(q);BigInteger pp = new BigInteger(p.getText());BigInteger qq = new BigInteger(q.getText());BigInteger oo = (pp.subtract(new BigInteger("1"))).multiply(qq.subtract(new BigInteger("1")));BigInteger ee;do {ee = new BigInteger(100, new Random()).mod(oo);} while (MillerRobin(ee) == false);e.setText(ee.toString());d.setText(inverse(ee, oo).toString());BigInteger n = pp.multiply(qq);int nLen = n.bitLength();int m = (int) (Math.ceil((double) (nLen) / 16.0));nLen = (nLen - 1) / 16;String Ciphertext = new String();String Plaintext = new String();System.out.println("P:" + p.getText());System.out.println("Q:" + q.getText());System.out.println("公钥:" + e.getText());System.out.println("私钥:" + d.getText());Scanner scanner = new Scanner(System.in);System.out.println("输入要加密字符串:");s = scanner.nextLine();Ciphertext = Encode(s, n, nLen, m, e);System.out.println("加密结果:" + Ciphertext);Plaintext = Decode(Ciphertext, n, m, d);System.out.println("解密结果:" + Plaintext);}//产生大素数public static void ProducePrime(JTextField prime) {BigInteger n = new BigInteger("0");Random r = new Random();do {n = new BigInteger(512, 5, r);prime.setText(n.toString());} while (MillerRobin(n) == false);}//Miller Robin素性检验public static boolean MillerRobin(BigInteger n) {int time = 1000;BigInteger m = n.mod(new BigInteger("2"));if (m.equals(new BigInteger("0"))) {return false;}int s = 0;int k = 0;BigInteger t = n.subtract(new BigInteger("1"));while (t.mod(new BigInteger("2")).equals("0")) {t.divide(new BigInteger("2"));++s;}for (int i = 0; i < time; ++i) {BigInteger a = new BigInteger(100, new Random()).mod(n.subtract(new BigInteger("3"))).add(new BigInteger("2"));BigInteger b = modex(a, t, n);if (b.equals(new BigInteger("1")) == false&& b.equals(n.subtract(new BigInteger("1"))) == false) {k = 1;while (k == s&& b.equals(n.subtract(new BigInteger("1"))) == false) {b = b.multiply(b).mod(n);if (b.equals(new BigInteger("1"))) {return false;}++k;}if (b.equals(n.subtract(new BigInteger("1"))) == false) {return false;}}}return true;}//模幂运算public static BigInteger modex(BigInteger a, BigInteger b, BigInteger n) {BigInteger m = new BigInteger("1");while (b.equals(new BigInteger("0")) == false) {if (b.mod(new BigInteger("2")).equals(new BigInteger("1"))) {m = m.multiply(a).mod(n);}a = a.multiply(a).mod(n);b = b.divide(new BigInteger("2"));}return m;}//求逆运算public static BigInteger inverse(BigInteger a, BigInteger b) {BigInteger n1 , n2 , n3, m, t, b1;n1 = new BigInteger("1");n2 = new BigInteger("0");b1 = b;while (b.equals(new BigInteger("0")) == false) {m = a.divide(b);n3 = n1.subtract(m.multiply(n2));if (pareTo(new BigInteger("0")) != -1) {n3 = n3.mod(b1);} else {n3 = b1.subtract(n3.multiply(new BigInteger("-1")).mod(b1));}n1 = n2;n2 = n3;t = b;b = a.mod(b);a = t;}if (a.equals(new BigInteger("1"))) {return n1;} else {return new BigInteger("0");}}//加密public static String Encode(String Plaintext, BigInteger n, int nLen, int m, JTextField e) {BigInteger r = new BigInteger("0");StringBuffer outBuf = new StringBuffer();int i, j, k;for (i = 0; i < Plaintext.length(); i = j) {BigInteger t = new BigInteger("0");for (j = i; j < i + nLen && j < Plaintext.length(); j++) {t = t.shiftLeft(16);long num = Plaintext.charAt(j);t = t.add(BigInteger.valueOf(num));}r = modex(t, new BigInteger(e.getText()), n);String buf = new String();for (k = 0; k < m; ++k) {long num = (r.and(BigInteger.valueOf(65535))).longValue();r = r.shiftRight(16);buf = (char) (num) + buf;}outBuf = outBuf.append(buf);}return outBuf.toString();}//解密public static String Decode(String Ciphertext, BigInteger n, int m, JTextField d) {StringBuffer outBuf = new StringBuffer();BigInteger r = new BigInteger("0");int i, j;for (i = 0; i < Ciphertext.length(); i += j) {BigInteger t = new BigInteger("0");for (j = 0; j < m && j + i < Ciphertext.length(); j++) {t = t.shiftLeft(16);long num = (long) (Ciphertext.charAt(j + i));t = t.add(BigInteger.valueOf(num));}r = modex(t, new BigInteger(d.getText()), n);String buf = new String();while (pareTo(new BigInteger("0")) > 0) {long num = (r.and(BigInteger.valueOf(65535))).longValue();buf = (char) (num) + buf;r = r.shiftRight(16);}outBuf = outBuf.append(buf);}return outBuf.toString();}}2.3测试结果:P:129036805470851517375614397900032888596537198498489613936254861169557 280794177755476583936161903531948987784914983448340462980850402666689 13843973354103033Q:965485259575386626661798155084845386764376902206479716964206598369971506074458894922536120328881558956967066309443036648783409751809379053 0180407555360339公钥:1133142713903219484415537969751私钥:289229897767689634195491655141643249544903709281685759316055760288297 329286785308503278756568252277106589199437078007305924525623679341478 908797523966221390308041636992564515935685594854485373424597837714855 144013790195492262743427356815741901651405003362999246563628660918125 34177904849175286307833237971415输入要加密字符串:密码学算法RSA加密结果:偮钘?兄埅????烄証箕???霑痘????啛猝市????鎈????釤?????????????筕???酪? ??霧?羳???鑮だ解密结果:密码学算法RSA。

相关文档
最新文档