RSA加密解密 (输入数值)

 
//只是简单地实现了加密解密,并未实现 验证参数p,q互质,e与(p-1)(q-1)互质

import java.util.*; public class RSA{ public static void main (String args[]){ System.out.println("请依次输入p,q,e,字母数值 "); Scanner scan=new Scanner (System .in); int p=scan.nextInt(); int q=scan.nextInt(); int e=scan.nextInt(); int letter=scan.nextInt(); int n=p*q; int a=(p-1)*(q-1); int d=0; do { d++; }while(((d*e)%a)!=(1%a)); System .out.println("请选择操作"); System .out.println("1:加密 "); System .out.println("2:解密 "); int t=scan.nextInt(); switch (t ){ case 1: int Me=1; int i=0 ; while( i<e){ Me=Me*letter; Me=(Me%n); i++; } System.out. print("明文:"+letter+" 公钥:<"+e+","+n+"> 密文:" +Me); break; case 2: int Cd=1; int j=0 ; while( j<d){ Cd=Cd*letter; Cd=Cd%n; j++; } System.out. print("密文:"+letter+" 私钥:<"+d+","+n+"> 明文:" +Cd); break; } } }
88888888888888888888888888888
原文地址:https://www.cnblogs.com/lql547485426/p/6681474.html