我在代码中遇到了解密问题,从加密和解密中获得的值不匹配,解密的值始终为1的值。我已经附加了所有代码,并希望对为什么发生这种情况有所帮助它使我有些眼花。乱。

最佳答案

线

d = (BigInteger.valueOf(1).mod(phi).divide(e));  //check with nick


是不正确的,因为我确定尼克会确认。您需要计算e mod phi的modular inverse。在Java中,它可以作为BigInteger.modInverse(..)使用,因此正确的行应为

d = e.modInverse(phi);

关于java - RSA加密和解密Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49880381/

10-15 08:40