Verschlüsseln und Entschlüsseln mit AES ECB-Modus 'BadPaddingException' in einigen Fällen

8

In Android / Java-App

%Vor%

Ich arbeite an diesem Code: Ссылка Ich benutze diesen Code Code funktioniert gut, wenn es verwendet wird, im Falle von: encryptbyte und decryptbyte which take byte [] und ich teste es, es ist das Ergebnis der Verschlüsselung auf dieser Seite Ссылка

aber ich brauche es um Daten zu dekrementieren kam vom Server (Antwort ist Came String) und wenn ich den String in Byte [] umwandle, hat der Code immer die Ausnahme: javax.crypto.IllegalBlockSizeException: Fehler: 0606506D: digitale Envelope-Routinen: EVP_DecryptFinal_ex: falsche letzte Blocklänge **

Ich denke es ist, wenn die Zeichenfolge in Byte [] geändert wird, wenn das der richtige Weg ist, um zu konvertieren. Beratung bitte.

Diese Code-thraw-Ausnahme:

%Vor%

Dies ist die Ausnahme

%Vor%     
Wael Abo-Aishah 21.01.2016, 13:40
quelle

2 Antworten

-1

Ich löse es .... der Server verschlüsselt AES mit Out-Padding und ZeroBytePadding-Modus ist der einzige Arbeitsmodus ... Arbeitscode:

%Vor%

und du kannst es so nennen:

%Vor%     
Wael Abo-Aishah 23.01.2016, 16:35
quelle
2

Das letzte Bit des Codes: strToDecrypt = "tATTXSdXI4w0oiu/fzgpyA==" scheint eine base64-Codierung zu haben, beachten Sie die nachgestellten == -Zeichen. Dies ist sinnvoll, da die Verschlüsselung datenbyteorientiert, nicht stringorientiert ist.

Base64 "tATTXSdXI4w0oiu/fzgpyA=="
hexadezimal: B404D35D2757238C34A22BBF7F3829C8 (16 Bytes).

Sie müssen das Base64 in Datenbytes für den Code dekodieren:

%Vor%

Beachten Sie auch, dass der obige Code eine leere Zeichenfolge für einen Schlüssel hat, das ist ein Fehler.

    
zaph 21.01.2016 15:54
quelle

Tags und Links