
BigInteger b=new BigInteger("1"); BigInteger b=BigInteger.valueof(1);BigInteger bigInteger = BigInteger.probablePrime(2048, r);    //随机生成2048位的大素数,r为Random变量boolean a = b.isProbablePrime(256);    //b是素数的概率为1 - 1 / 2^256BigInteger a,b,c;
c=a.add(b);   //加
c=a.subtract(b);  //减
c=a.multiply(b);  //乘
c=a.divide(b);  //除BigInteger a,b,c;
c=a.gcd(b);BigInteger a,b,c;
c=a.remainder(b);BigInteger a,b,c;
c=a.modPow(b,m);





getByte()将明文转化为byte数组




问题1:加密时不知道如何将明文转化为可用于加密的数字
解决1:纠结了好久,想到看书时看到过的getByte()方法可以将字符串转化为byte数组

问题2:解密时,出现了以下问题

解决2:这个错误还没法调试,检查了好久,发现自己计算公钥e的时候模的是n,修改了成模f后,解决了该问题
问题3:之后,解密出来的文件还是有问题

解决3:调试后,发现自己犯了很蠢的错误,我把int i=0放在了while 循环里,每次循环都会把i置1...

问题4:然后,输出还是有问题,后面会多一些空格

解决4:增加一个与明文长度等长的byte数组

成功~~

原文:https://www.cnblogs.com/wyf20175217/p/10886124.html