BadPaddingException quando si utilizza la cifra del libro di testo

1

Sto usando un'implementazione come sotto per fare una crittografia dove il bouncycastle è usato come provider di crittografia. Quindi il testo cifrato per un particolare testo in chiaro non sarà dinamico in quanto l'RSA di Bouncycastle non ha un riempimento. Si comporterà come una cifra da manuale.

  private static byte [] encrypt(String plaintext) throws Exception {

        KeyStore keyStore = getKeyStore();
        Certificate[] certs = keyStore.getCertificateChain("alias");
        Cipher cipher = Cipher.getInstance("RSA","BC");
        cipher.init(Cipher.ENCRYPT_MODE, certs[0].getPublicKey());
        return cipher.doFinal(plaintext.getBytes());
    }

Quindi sto decifrando il testo cifrato come sotto

private static String decrypt(byte [] ciphertext) throws Exception {

    KeyStore keyStore = getKeyStore();
    PrivateKey privateKey = (PrivateKey) keyStore.getKey("alias",
            "password".toCharArray());
    Cipher cipher = Cipher.getInstance("RSA","BC");
    cipher.init(Cipher.DECRYPT_MODE, privateKey);
    byte[] cipherbyte=cipher.doFinal(ciphertext);
    return new String(cipherbyte);
}

Durante questo periodo ricevo l'eccezione seguente

Caused by: javax.crypto.BadPaddingException: Given final block not properly padded
    at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:966)
    at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:824)
    at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:436)
    at javax.crypto.Cipher.doFinal(Cipher.java:2165)
    at 

Quale sarebbe la ragione di questo? Per quanto ne so, questo può accadere solo quando si applica il padding come RSA con OAEP o qualcosa di simile. Ho controllato molte domande poste da molte altre persone e tutti stanno dimostrando esempi con il padding.

Per favore fatemi sapere se ci sono altri possibili luoghi in cui può verificarsi questa eccezione. Apprezzo davvero il tuo aiuto su questo

    
posta Prakhash 14.06.2018 - 13:48
fonte

0 risposte

Leggi altre domande sui tag