package rsa;
import java.util.Random;
public class RSA {
static Random rdl = new Random();
static int isPrime(long a) {//判断一个正整数是否为质数
int tag = 1; //标志位,1为质数,0为非质数
long temp = 2;
if((Math.pow(temp, a - 1))% a != 1) {
tag = 0;
}
else {
tag = 1;
}
return tag;
}
static long createRndInteger(int n) {
int min = (int) Math.pow(2, n - 1); //n位长整数的最小值
int max = 0; //n位长整数的最大值
for(int i = 0;i < n;i ++) {
max += Math.pow(2, i);
}
int rndInteger = rdl.nextInt(max - min + 1)+ min;
return rndInteger;
}
public static void main(String args[]) {
long testData = createRndInteger(10);
System.out.println(testData);
System.out.println(isPrime(testData));
}
}
注:暂只实现素数判断与n位随机数生成
《算法概论》第二周作业-RSA算法实现
最新推荐文章于 2022-04-13 19:03:44 发布