java中随机大素数如何产生_密码学大素数生成java源码

本文介绍了一种在Java中生成大素数的方法,包括自定义程序实现大素数生成,通过去除偶数和Fermat素性检验确保素数性质。提供了一个主方法示例,用于生成20位随机大素数。
摘要由CSDN通过智能技术生成

1、因为自己也是信息安全专业的,老师留的作业编程实现大素数生成算法。但自己当时在网上找了一下,都不太好,还需要自己修改。虽然java自带相关的类方法,但感觉还是自己写程序实现比较好。下面是自己写的程序,亲测能够使用。思路在备注上有,这里就不多说了。import java.math.BigInteger;public class bigPrimestatic BigInteger s_prime=new BigInteger(1);/定义一个BigInteger类型的变量s_prime,用来存放产生的大素数;因为构造函数没有无参的所以初始化为1。private static final BigInt。

2、eger ZERO=BigInteger.ZERO;private static final BigInteger ONE=BigInteger.ONE;private static final BigInteger TWO=new BigInteger(2);private static StringBuffer digits=new StringBuffer(0),new StringBuffer(1),new StringBuffer(2),new StringBuffer(3),new StringBuffer(4),new StringBuffer(5),new StringBuff。

3、er(6),new StringBuffer(7),new StringBuffer(8),new StringBuffer(9);private static BigInteger primeList=new BigInteger1000;private static int k=0;/主方法:1:调用构造方法生成2000以内的素数; 2:调用bigRandom(20)方法生成20位的随机大奇数; 3:removeEvenNumber(s_prime)除去偶数; 4:fermatPrimalityTest(s_prime)利用Fermat素性检验;public static void mai。

4、n(String args)new bigPrime();for(int j=0;j<10;j+)while(true)s_prime=bigRandom(20);s_prime=removeEvenNumber(s_prime);if(fermatPrimalityTest(s_prime)System.out.println(s_prime+是素数!);break;/生成2000以内的素数并初始化primeList1000public bigPrime()String str_prime;for(int i=2;i<2000;i+)boolean flag=true;for(int j=2。

5、;j6、ue;/一次产生一个09的随机数,并保证最高位不是零private static StringBuffer randomDigits(boolean isZero)int index;if(isZero)index=(int)(Math.floor(Math.random()*10);else index=1+(int)(Math.floor(Math.random()*9);return digitsindex;/产生大的随机数public static BigInteger bigRandom(int n)StringBuffer s=new StringBuffer();for(int i=0;i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值