获取javax.crypto.IllegalBlockSizeException:数据不得超过256个字节的异常

时间:2019-11-20 13:10:09

标签: java encryption rsa private-key

场景:我正在研究一个将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));
}

任何想法如何解决此间歇性问题?非常感谢您的帮助。

谢谢, 索拉比

0 个答案:

没有答案