javax.crypto.IllegalBlockSizeException: letzter Block unvollständig bei der Entschlüsselung - Entschlüsselung einer verschlüsselten AES-Zeichenfolge

8

Ich versuche, die Zeichenfolge "~9?8?m???=?T?G" zu entschlüsseln, die ich von einem Back-End-Server erhalte, der OpenSSL verwendet, um den String mit AES-256-CBC zu verschlüsseln. Es gibt den Codeblock:

%Vor%

Leider, wenn ich zum

komme %Vor%

Anweisung die folgende Ausnahme ausgelöst wird:

%Vor%

Irgendwelche Ideen?

    
lazypig 06.11.2012, 23:49
quelle

2 Antworten

6

Sie sollten die Zeichenfolge decodieren , anstatt die plattformspezifische Darstellung der Zeichenfolge direkt am Anfang Ihrer Methode zu codieren.

%Vor%

oder genauer:

%Vor%

Wenn Sie Ihre Variablen richtig benennen.

Im Allgemeinen tun Sie jedes Mal, wenn Sie die String.getBytes(): byte[] -Methode oder den String(byte[]) -Konstruktor verwenden müssen, wahrscheinlich etwas falsches. Sie sollten zuerst darüber nachdenken, was Sie zu tun versuchen, und ein

Maarten Bodewes 07.11.2012, 16:35
quelle
2

Also dank @owlstead konnte ich die Lösung herausfinden. Es war, dass ich den Fehler von Base64 gemacht habe, eine bereits Base64 kodierte Zeichenkette zu kodieren. Das Folgende ist nach Code-Chunk.

%Vor%

Die entsprechende Verschlüsselung ist wie folgt

%Vor%     
lazypig 08.11.2012 00:30
quelle