我正在尝试用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();
}
非常感谢!
答案 0 :(得分:1)
您的消息不适合模数,这使得无法检索执行模运算时丢失的信息。因此,RSA通常与AES等对称加密相结合,而AES密钥则被加密。