场景:我正在研究一个将AES算法用于实际数据加密和解密的场景。并使用RSA算法对AES密钥进行加密/解密。
问题:当我尝试使用RSA crypto()方法检索AES私钥时,它引发了-javax.crypto.IllegalBlockSizeException: Data must not be longer than 256 bytes
异常。
同样,观察到这并不是每次都抛出的一件事,有时它可以正常工作,有时却不能。
这是一个代码:
public byte[] decryptKey(final String keyToDecrypt, final String key) throws Exception
{
PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(key));
PrivateKey pKey = keyFactory.generatePrivate(spec);
cipher.init(Cipher.DECRYPT_MODE,pKey);
return cipher.doFinal(Base64.getDecoder().decode(keyToDecrypt));
}
任何想法如何解决此间歇性问题?非常感谢您的帮助。
谢谢, 索拉比