采用非对称的RAS算法 今有两个求素数算法P...

【图文】第5章非对称密码体制与典型算法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
第5章非对称密码体制与典型算法
上传于||暂无简介
大小:3.00MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢常用的非对称密码算法有哪些_百度知道写了一个用RAS算法获取密钥,求改正,该怎么处理 - Eclipse当前位置:& &&&写了一个用RAS算法获取密钥,求改正,该怎么处理写了一个用RAS算法获取密钥,求改正,该怎么处理&&网友分享于:&&浏览:23次写了一个用RAS算法获取密钥,求改正运行完就卡死,好像死循环,求更正public class RSA { public static class getNumbers{
int p,q,e,d;
public void getPrimerPQ(){
boolean pp,
p=(int)(Math.random()*10);/*生成两个素数p,q*/
pp=judge(p);
while(pp==false){
p=(int)(Math.random()*10);
pp=judge(p);
q=(int)(Math.random()*10);
qq=judge(q);
while(qq==false){
q=(int)(Math.random()*10);
qq=judge(q);
public void getN(){
/*生成n,e*/
a=(p-1)*(q-1);
e=(int)(Math.random()*10);
ee=huzhi(a,e);
while(ee==false){
e=(int)(Math.random()*10);
public boolean judge (int m){
/*判断两个数是不是素数*/
boolean tag=
for(int i=m-1;i&1;i--)
if(m%i==0)
public boolean huzhi(int a,int e){/*判断两个数是不是互质数*/
boolean F=
while(a&0&&e&0){
if(a&e) a=a-e;
if(i==1) F=
} public static void main(String agv[]){
getNumbers tt=new getNumbers();
tt.getPrimerPQ();
tt.getN();
System.out.println(tt.p);
System.out.println(tt.q);
System.out.println(tt.e);
System.out.println(tt.d); } }------解决方案--------------------
import java.math.BigI &/** &*&
&* @author FJC
&*/ &public class SimpleRSA {
* ci = mi^e ( mod n )&
* @param data
* @param n
* @param e
public static BigInteger encrypt(BigInteger data,BigInteger n,int e){
data = data.pow(e);
return data.remainder(n);
public static int encrypt(int data,int n,int e){
return encrypt(BigInteger.valueOf(data),new BigInteger(n+&&),e).intValue();
* mi = ci^d ( mod n )&
* @param data
* @param n
* @param d
public static BigInteger decrypt(BigInteger data,BigInteger n,int d){
data = data.pow(d);
return data.remainder(n);
public static int decrypt(int data,int n,int d){
return encrypt(BigInteger.valueOf(data),BigInteger.valueOf(n),d).intValue();
public static void main(String agv[]) {
RSAInit rsaInit = new RSAInit();
rsaInit.init();
System.out.println(&e=&+rsaInit.e);
System.out.println(&d=&+rsaInit.d);
System.out.println(&n=&+rsaInit.n);
String str=&This is a test!&;
System.out.println(&明文为:\n&+str);
System.out.println(&密文为:&);&
int [] MM=new int[str.length()];
for(int i=0;i&str.length();i++){&
MM[i]=encrypt((int)str.charAt(i),rsaInit.n,rsaInit.e);
System.out.print(MM[i]+& &);
int []NN=new int[str.length()];
System.out.println(&&);
System.out.println(&解密后:&);
for(int i=0;i&str.length();i++){
NN[i]=decrypt(MM[i],rsaInit.n,rsaInit.d);&
System.out.print((char)NN[i]); 共&2&页:
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有第05章 非对称加密技术_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
第05章 非对称加密技术
上传于||文档简介
&&网​络​安​全​的​p​p​t​,​非​常​详​细​,​有​很​高​的​参​考​价​值​,​由​教​育​部​新​世​纪​优​秀​人​才​支​持​计​划​入​选​者​,​博​士​生​导​师​,​网​络​安​全​专​家​所​编​写
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩35页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢第11章计算机网络基础_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
第11章计算机网络基础
上传于||暂无简介
大小:153.50KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢

我要回帖

更多关于 求素数算法 的文章

 

随机推荐