Java中的RSA:BitInteger和byte []

时间:2017-03-27 22:17:31

标签: java encryption rsa biginteger

我正在尝试用Java编写RSA加密字符串和解密函数,但是遇到了一些麻烦:我认为BigInteger和byte []之间的转换或反之亦然导致它,一些建议?

public byte[] encrypt(byte[] message, BigInteger n, BigInteger e) {
    BigInteger m = new BigInteger(1, message);
    BigInteger c = m.modPow(e, n);
    return c.toByteArray();
}

public byte[] decrypt(byte[] cipher, BigInteger n, BigInteger d) {
    BigInteger c = new BigInteger(1, cipher);
    BigInteger m = c.modPow(d, n);
    return m.toByteArray();
}

非常感谢!

1 个答案:

答案 0 :(得分:1)

您的消息不适合模数,这使得无法检索执行模运算时丢失的信息。因此,RSA通常与AES等对称加密相结合,而AES密钥则被加密。