1Danke
ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
876
876
EMPFEHLEN
-
Moin,
ich habe eine Klasse geschrieben, welche mir einen String ver- und entschlüsseln soll.
Das verschlüsseln klappt soweit gut nur beim entschlüsseln erhalte ich folgende
Exception:
Code java:1
javax.crypto.BadPaddingException: Given final block not properly padded
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
import java.security.Key; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; public class CryptHelper { private static String key = "0123456789012345"; public static String encryptString(String text) { try { Key secretKey = new SecretKeySpec(key.getBytes(), "AES"); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); byte[] encrypted = text.getBytes("UTF-8"); cipher.init(Cipher.ENCRYPT_MODE, secretKey); byte[] encryptBytes = cipher.doFinal(encrypted); String encryptString = new String(encryptBytes); return encryptString; } catch (Exception e) { System.out.println("encrypt failed"); } return text; } public static String decryptString(String text) { try { Key secretKey = new SecretKeySpec(key.getBytes(), "AES"); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, secretKey); byte[] decryptBytes = cipher.doFinal(text.getBytes()); String decryptString = new String(decryptBytes,"UTF-8"); return decryptString; } catch (Exception e) { System.out.println("decrypt failed"); } return text; } }
Danke schon mal für die Hilfe
-
06.12.11 09:52 #2
Das Problem ist, dass Du die verschlüsselten Bytes in einen String umwandelst (Zeile 19 und 36). Entweder arbeitest Du direkt mit dem byte-Array od. Du wandelst das byte-Array in einen HEX-String um (zB mit Apache Commons Codec).
Fann Ég Fjalli Fallega Steina
Faldi Dá Alla Vildi Deim Leyna
Huldi Dar Hellisskúta Heillasteina
Alla Mína Una eth slegu Óskasteina
-
06.12.11 10:25 #3
- Registriert seit
- Aug 2005
- Ort
- Karlsruhe (Baden-Württemberg)
- Beiträge
- 905
Das Problem ist auch in Zeile 11. getBytes holt die Bytes des Strings in dem Standard-Zeichensatz des Betriebssystems. Hier sollte man eins fest definieren.
Wäre super wenn ihr euren Code in dieser Form einfügt:
[java]System.out.println("Hello World");[/java]Code java:1
System.out.println("Hello World");
Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
Blog: http://javaeffective.wordpress.com/
-
Danke, arbeite nun ohne Probleme direkt mit dem byte-Array weiter.
Ähnliche Themen
-
Verschlüsselung in Flash, entschlüsseln in Java
Von giggei im Forum Flash PlattformAntworten: 1Letzter Beitrag: 21.04.09, 15:48 -
KCryptEdit - Ein kleiner Java-Texteditor mit Verschlüsselung.
Von Kai008 im Forum JavaAntworten: 1Letzter Beitrag: 04.04.09, 20:06 -
RSA-Verschlüsselung
Von Azi im Forum Security (Viren, Trojaner, Spam)Antworten: 5Letzter Beitrag: 30.12.07, 13:05 -
pgp verschlüsselung
Von aspera im Forum PHPAntworten: 5Letzter Beitrag: 17.03.06, 11:51 -
Verschlüsselung?
Von sam im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 05.03.03, 22:24





Zitieren
Login





