1

我对这个公钥密码背后的简单示例非常着迷,并坐下来Client <- Server -> Client使用 Java 编写我自己的示例。只是一个简单的来回使用生成的秘密对消息进行编码。

我最初遇到的问题是技术问题。在演示中,作者确定了方程的结果:

3 ^ (24 * 54) mod 17

有一个值:

= 1

但我的问题是,如何在 Java 中计算如此大的数字?

还是提供的示例只是:一个示例,而不是实际的计算方法?

4

2 回答 2

3

这一定有一个很好的数学原因(丹尼尔·菲舍尔似乎有一个)。在任何情况下,您都可以使用 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。

于 2012-10-29T17:10:35.273 回答
0

您需要使用BigInteger类来处理如此大的数字。它提供对大整数的算术运算。

于 2012-10-29T17:10:24.717 回答