gpt4 book ai didi

java - 如何在RSA中加密?

转载 作者:行者123 更新时间:2023-11-29 06:24:29 25 4
gpt4 key购买 nike

我想在没有库的情况下编写自己的 RSA 加密器!

代码:

import java.util.Random;

public class Main {

public static void main(String[] args) {
System.out.println(createPrime());
}

private static byte encrypt(byte message) {
double p = createPrime();
double q = createPrime();
double e = 2 ^ new Random().nextInt(100) % (p * q);
byte ciphered = Math.pow(message, e);
return ciphered;
}

private static double createPrime() {
double testPow;
do {
int test = new Random().nextInt(20);
int power = new Random().nextInt(20);
test += 1;
power +=1;
testPow = Math.pow(test, power);
System.out.println("Double Math.pow: " + testPow);
} while (!testPrime(testPow));
return testPow;
}

private static Boolean testPrime(Double test) {
int factor = 2;
int lastFactor = 1;
while (test > 1) {
if (test % factor == 0) {
lastFactor = factor;
test /= factor;
while (test % factor == 0) {
test /= factor;
}
}
factor++;
}
Boolean isPrime = false;
if (test == lastFactor) {
isPrime = true;
}
return isPrime;
}
}

这就是我要加密的内容。我不知道我应该怎么做才能纠正这个问题,但在尝试之前我已经手工完成了很多工作。

所以我知道要加密的方程是c = m^e (mod N)和解密m = c^d (mod N)

其中 p, q 是质数 - m 是消息 - c 是密文 - e 是 N 的总和 - N 是 p 乘以 q - N 的总和是 (p-1)(q-1)

感谢任何帮助

最佳答案

首先要做的是查看类 java.math.BigInteger。本类(class)将对您实现“教科书”RSA 有很大帮助。

关于java - 如何在RSA中加密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5129399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com