RSA加密算法 公钥(N,e)产生

RSA公钥的产生

步骤:1、随机生成两个不同的素数p,q

            2、计算出N=p*q和n=(p-1)(q-1)

    3、求出e

源代码如下:

package second.suanfa.whp;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Random;

public class createRndInteger {

	/**
	 * 王海平
	 */
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		try {
			System.out.println("求公钥!!");
			System.out.println("随机产生一个长整数!!");
			System.out.println("请输入1-63一个整数:");
			BufferedReader br1 = new BufferedReader(new InputStreamReader(
					System.in));
			int num1 = Integer.parseInt(br1.readLine());
			long RndInteger;
			long p = 0, q = 0;
			long e = 0;
			int x;
			if (num1 >= 0 || num1 < 64) {
				for (int j = 1; j <= 2; j++) {
					for (int i = 0;; i++) {
						RndInteger = CreateRndInteger(num1);
						if (isPrime1(RndInteger) == 1) {
							break;
						}

					}
					if (j == 1) {
						p = RndInteger;
					} else {
						q = RndInteger;
					}
					System.out.println("随机产生的第" + j + "个" + num1 + "bit的质数是:"
							+ RndInteger);
				}

				// 随机获得了p,q的值后
				long N = p * q;
				// n的欧拉函数
				long n = (p - 1) * (q - 1);
				// 随机生成一个整数e,1


结果如下:

RSA加密算法 公钥(N,e)产生_第1张图片

你可能感兴趣的:(算法/数据结构,java&web编程)