Java Strange modPow()行为

时间:2017-04-04 20:11:44

标签: java encryption rsa

我正在编写一个使用RSA登录的聊天程序。从理论上讲,服务器创建一个32字节的随机令牌作为字节数组,并使用用户的公共RSA密钥对其进行加密并将其发送给他,此时用户使用他的私钥对其进行解密,然后将其发送回serevr最后,服务器比较生成的令牌和从用户收到的令牌。

我注意到的问题是,有时当服务器加密令牌时,结果字节数组的长度为512字节并且登录失败但是当它全部好时,字节数组的长度大约是160字节。

public byte[] encode(byte[] toEncode) {
    byte[] encoded;
    BigInteger y=new BigInteger(toEncode);

    y=y.modPow(new BigInteger(""+encodingPublicKey.getE()), encodingPublicKey.getN());
    encoded=y.toByteArray();

    return encoded;
}

这是代码,我可以找到解决这个问题的方法,但我想知道我做错了什么

0 个答案:

没有答案