我在代码中遇到解密问题,其中从加密和解密获得的值不匹配,并且解密值始终为 1。我已附加了所有代码,并且希望得到一些帮助来解释为什么会出现这种情况正在发生,因为它让我有点眼花缭乱。
最佳答案
线路
d = (BigInteger.valueOf(1).mod(phi).divide(e)); //check with nick
不正确,我相信尼克会确认这一点。您需要计算 modular inverse e mod phi。在 Java 中,这可用作 BigInteger.modInverse(..)
,所以正确的行是
d = e.modInverse(phi);
关于java - RSA加解密Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49880381/