java - 执行公钥加密背后的数学运算

标签 java math public-key-encryption

我对 this simple example 非常着迷了解公钥加密背后的想法,然后坐下来写我自己的 Client <- Server -> Client使用 Java 的示例。只是一个简单的来回,使用生成的 secret 对消息进行编码。

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

3 ^ (24 * 54) mod 17

有一个值:

= 1

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

或者示例只是简单地提供了:示例,而不是实际的计算方法?

最佳答案

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

关于java - 执行公钥加密背后的数学运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13126360/

相关文章:

java - 我是否在 java.util.ArrayList.containsAll 中发现了错误?

java - 对齐边缘效果

javascript - 使用 node-forge 加密并使用 python 和 RSA-OAEP 解密

encryption - 使用RSA保护许可证文件

java - 如何测试 util detector OS 类

java - 为什么当我按退出键时框架不关闭?

java - 使用 H2 和 HSQL DB 时 Hibernate 查询返回重复结果集

algorithm - 证明如果 g(n) 是 o(f(n)),则 f(n) + g(n) 是 Theta(f(n))

javascript - 如何确保这些圆圈始终接触 - 包装问题

c++ - 生物识别锁定文件库