Частные / публичные данные об исключении зашифрованных данных Java не должны превышать 256 байт. - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть этот код ниже для шифрования объектов, что делает работу.Но у меня есть объект, содержащий список другого объекта.Когда я шифрую объект, у меня возникает ошибка, что данные должны быть больше 256 байт.Когда я удаляю список, шифрование управляется без ошибок.

public class A {
     private List<B> b = new ArrayList<>(); 
    //getter setter

}


try {
    Cipher cipher = Cipher.getInstance("RSA");
    cipher.init(Cipher.ENCRYPT_MODE, publicKey);
    encryptedBytes = cipher.doFinal(message.getBytes());
} catch (NoSuchPaddingException | NoSuchAlgorithmException | BadPaddingException
           | IllegalBlockSizeException | InvalidKeySpecException | InvalidKeyException e) {
       e.printStackTrace();
}

1 Ответ

0 голосов
/ 21 ноября 2018

RSA не подходит для шифрования более чем ограниченного количества данных.Обычным решением является гибридное шифрование , где данные шифруются симметричным шифром с одноразовым ключом, а RSA используется для шифрования (только) ключа.См. Примеры PKCS7 / CMS / SMIME, PGP, XMLenc, JWE, SSL / TLS и SSH.

Дупсеты здесь и кросс-стек:
Шифрование больших файлов с использованием открытого ключа
Как зашифровать большой файл в openssl с помощью открытого ключа
https://crypto.stackexchange.com/questions/14/how-can-i-use-asymmetric-encryption-such-as-rsa-to-encrypt-an-arbitrary-length
https://crypto.stackexchange.com/questions/3608/why-is-padding-used-for-rsa-encryption-given-that-it-is-not-a-block-cipher
https://crypto.stackexchange.com/questions/5782/why-is-asymmetric-cryptography-bad-for-huge-data
https://crypto.stackexchange.com/questions/10685/hybrid-encryption-with-rsa-and-aes-versus-spliting-into-multiple-rsa-messages
https://crypto.stackexchange.com/questions/25899/using-ecb-as-rsa-encryption-mode-when-encrypted-messages-are-unique
https://security.stackexchange.com/questions/37581/why-does-pgp-use-symmetric-encryption-and-rsa

...