我对这个公钥密码背后的简单示例非常着迷,并坐下来Client <- Server -> Client
使用 Java 编写我自己的示例。只是一个简单的来回使用生成的秘密对消息进行编码。
我最初遇到的问题是技术问题。在演示中,作者确定了方程的结果:
3 ^ (24 * 54) mod 17
有一个值:
= 1
但我的问题是,如何在 Java 中计算如此大的数字?
还是提供的示例只是:一个示例,而不是实际的计算方法?
我对这个公钥密码背后的简单示例非常着迷,并坐下来Client <- Server -> Client
使用 Java 编写我自己的示例。只是一个简单的来回使用生成的秘密对消息进行编码。
我最初遇到的问题是技术问题。在演示中,作者确定了方程的结果:
3 ^ (24 * 54) mod 17
有一个值:
= 1
但我的问题是,如何在 Java 中计算如此大的数字?
还是提供的示例只是:一个示例,而不是实际的计算方法?
这一定有一个很好的数学原因(丹尼尔·菲舍尔似乎有一个)。在任何情况下,您都可以使用 BigInteger:
public static void main(String[] args) {
BigInteger bi = new BigInteger("3")
.modPow(new BigInteger(String.valueOf(24 * 54)), new BigInteger("17"));
System.out.println(bi);
}
输出 1。
您需要使用BigInteger类来处理如此大的数字。它提供对大整数的算术运算。