расшифровать ключ AES с помощью закрытого ключа RSA - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь расшифровать ключ AES с помощью закрытого ключа RSA.

вот исключение:

[02.10.18 15: 36: 07: 841 EEST] 00000082 SystemErr R java.lang.ArrayIndexOutOfBoundsException: слишком много данных для блока RSA [10/2/18 15: 36: 07: 841 EEST] 00000082 SystemErr R в org.bouncycastle.jce.provider.JCERSACipher.engineDoFinal (неизвестный источник)[10/2/18 15: 36: 07: 841 EEST] 00000082 SystemErr R at javax.crypto.Cipher.doFinal (неизвестный источник) [10/2/18 15: 36: 07: 841 EEST] 00000082 SystemErr R в com.cms.g2g.service.EncryptionService.decryptKey (EncryptionService.java:134)

и вот мой код:

import org.bouncycastle.util.encoders.Base64;

public static SecretKeySpec decryptKey (String decAESAsString, PrivateKey  privateKey) 
         throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException {
    Cipher cipher = null;

    Security.addProvider(new BouncyCastleProvider());
    try {
        cipher = Cipher.getInstance("RSA/None/OAEPWithSHA1AndMGF1Padding", "BC");
    } catch (NoSuchProviderException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    cipher.init(Cipher.DECRYPT_MODE, privateKey);

    try {
        byte [] data = Base64.decode(decAESAsString);
        SecretKeySpec aeskeySpec = new SecretKeySpec(cipher.doFinal(data), "AES");
        return aeskeySpec ;
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return null;  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...