{ long mul; if(key==1) mul=y%n; else mul=y*this.colum(y,n,key-1)%n; return mul; } //加密后解密 public void pascolum()throws Exception { this.getText(); System.out.println("输入明文为: "+this.text); //加密 this.secretword=this.colum(this.text,this.n,this.public_key); System.out.println("所得的密文为:"+this.secretword); //解密 this.word=this.colum(this.secretword,this.n,this.private_key); System.out.println("解密后所得的明文为:"+this.word); } public static void main(String []args)throws Exception { Rsa t = new Rsa(); t.inputPQ(); t.getPublic_key(); t.getPrivate_key(); t.pascolum(); }
} 3试验介绍 2.1输入PQ,计算m、n 3.2输入公匙,产生密匙 3.3输入明文,产生密文,并解密 此处时间限制,明文暂时用个数字代替,有兴趣的可以改变程序,变成一段数字
请输入素数p: 23 请输入素数q: 29 这两个素数的乘积为p*q:667 所得的小于N并且与N互素的整数的个数为m=(p-1)(q-1):616 请输入一个公钥的值,这个值要求小于m并且和m互质: 611 gcd:1 gcd:1 gcd:1 gcd:1 公钥为:611 产生的一个私钥为:123 请输入明文: 311 输入明文为: 311 所得的密文为:653 解密后所得的明文为:311 (出处:清风下载学院)
上一篇:用JVM工具接口创建调试和分析代理
下一篇:JAVA基础:Java 启动器如何查找类
|