gpt4 book ai didi

java - 在加密交换中打印调试值

转载 作者:行者123 更新时间:2023-12-02 00:48:13 25 4
gpt4 key购买 nike

我创建了这个基本程序来实现 Diffie-Hellman 算法。我希望 s 是随机生成的素数,而 q 是随机生成的整数。 sk1sk2 是共享 key ,也是随机生成的。 pk1pk2 是模计算值,我必须证明它们彼此相等。我认为我的公式是正确的,但我不确定如何打印 sqsk1sk2 的值code>、pk1pk2 来验证我的要求。我的代码粘贴在下面,如果有人可以帮助我打印语句,我将非常感激。

package javaapplication1;
import java.util.Random;
import java.math.*;

public class DH {
public static void main(String [] arg) {

int s, q;
double sk1, sk2, pk1 = 0, pk2 = 0;
Random generator = new Random();
s = generator.nextInt(50000);
q = generator.nextInt(50000);

sk1 = generator.nextInt();
sk2 = generator.nextInt();

if(s==1 || s==2) {
for(int i = 2; i< (int)(s/2); i++) {
if(s/i != (int)(s/i)) {
double a= Math.pow(q,sk1);
pk1 = a%s;

double b= Math.pow(q, sk2);
pk2 = b%s;

if(pk1==pk2) {
System.out.println("true");
}

System.out.println(s);
System.out.println(q);
System.out.println(sk1);
System.out.println(sk2);
System.out.println(pk1);
System.out.println(pk2);
}
}
}
}
}

最佳答案

只有在 if(s/i != (int)(s/i)) 的情况下,你才可以做任何事情。由于 si 都是整数,因此这个条件不太可能成立。

(澄清一下:“不太可能”,我的意思是这个条件不可能为真。s/i 返回一个整数,并且 (int)(s/i) 将返回完全相同的整数。)

关于java - 在加密交换中打印调试值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4309628/

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