我在我的代码中遇到解密问题,我从加密和解密得到的值不匹配,解密的值总是1的值。我已经附上了我的所有代码,并希望得到一些帮助,为什么这个正在发生,因为它让我眼花缭乱。
答案 0 :(得分:1)
该行
d = (BigInteger.valueOf(1).mod(phi).divide(e)); //check with nick
不正确,因为我确信尼克会证实。你需要计算e mod phi的modular inverse。在Java中,这可用BigInteger.modInverse(..)
,因此正确的行将是
d = e.modInverse(phi);