AES-Verschlüsselung : javax.crypto.IllegalBlockSizeException: Letzte block unvollständige Entschlüsselung

Ich versuche zu entschlüsseln verschlüsselter Daten von einem web service mit AES128-Verschlüsselung.

folgenden ist der code, den ich benutze, um das gleiche zu erreichen.

Aber ich immer am Ende mit der folgenden Ausnahme:
javax.crypto.IllegalBlockSizeException: last block incomplete in decryption

public static String decrypt(String strToDecrypt)
    {

        try
        {
            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
            final SecretKeySpec secretKey = new SecretKeySpec(AppConstants.AESEncryptionKey.getBytes("UTF8"), "AES");
            cipher.init(Cipher.DECRYPT_MODE, secretKey,new IvParameterSpec(new byte[16])); //new IvParameterSpec(new byte[16])
            byte base64Data[] = Base64.encode(strToDecrypt.getBytes(), Base64.DEFAULT);
            @SuppressWarnings("unused")
            String s = base64Data.toString();
            byte decBytes[] = cipher.doFinal(base64Data);
            String decStr = new String(decBytes);
            return decStr;
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        return null;
    }

Bitte Gießen Sie Ihre wertvollen inputs, wie ich bin, schlecht, stecken hier.

In welchem format ist die Zeichenfolge, die Sie bekommen aus dem web-Dienst? Base64-kodiert?
ich bin immer eine verschlüsselte Zeichenfolge, die ich konvertieren es in base64-kodierter string und dann entschlüsseln

InformationsquelleAutor iAviatorJose | 2014-05-03

Schreibe einen Kommentar