Verschlüsselung - IllegalBlockSizeException

Status
Nicht offen für weitere Antworten.
S

Sascha_

Gast
Hallo!
Ich hab mir grade was geschrieben zum ver- und entschlüsseln von Strings. Leider schmeißt er mir beim entschlüsseln eine Exception und ich weiß nicht, was ich da falsch mache bzw. wie ich das lösen kann.

Code:
	public static String encrypt(String plaintext) {
		String encryptString="";
		
		try { 
			  byte[] plainTextBytes = plaintext.getBytes("ISO-8859-1");
			  SecretKeySpec specKey = new SecretKeySpec(KEY, "AES");
			  Cipher encryptCipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
			  encryptCipher.init(Cipher.ENCRYPT_MODE, specKey);

			  byte[] encryptedBytes = null;
			  encryptedBytes = encryptCipher.doFinal(plainTextBytes);
			  encryptString = encryptedBytes.toString();
		} 
		catch(Exception ex) {
			System.out.println(ex);
		}
		return encryptString;
	}
	
	public static String decrypt(String crypttext) {
		String plaintext = "";
		
		try {
			byte[] cryptBytes = crypttext.getBytes("ISO-8859-1");
			SecretKeySpec specKey = new SecretKeySpec(KEY, "AES");
			Cipher encryptCipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
			encryptCipher.init(Cipher.DECRYPT_MODE, specKey);
			
			byte[] encryptedBytes = null;
			encryptedBytes = encryptCipher.doFinal(cryptBytes);
			plaintext = encryptedBytes.toString();
		}
		catch (Exception ex) {
			System.out.println(ex);
		}
		
		return plaintext;
	}

Wenn ich das jetzt aufrufe über:

Code:
                String x = Crypt.encrypt("Mein Text");
		String y = Crypt.decrypt(x);

Bekomme ich für x sowas raus: [B@a56a7c

Und er schmeißt mir bei decrypt in der Zeile
encryptedBytes = encryptCipher.doFinal(cryptBytes);
die folgende Exception:
javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with padded cipher

Ich hab nachgeschaut, cryptBytes hat ne Länge von 8.


Weiß jetzt leider nicht, wie ich das Problem lösen kann. Irgendwelche Vorschläge?


Danke schon mal,
Sascha
 

HoaX

Top Contributor
byte[]#toString gibt nicht den inhalt des arrays als string zurück, darum kannst du ihn klar nicht entschlüsseln

wenn du einen string verschlüsselst kommt da ein byte[] und kein string raus, wie du schon gemerkt hast. dann aber byte[].toString aufzurufen ist unsinn - wenn überhaupt new String(deinByteArray), aber auch das ist mehr als nur böse.

richtige lösung ist entweder du machst via base64, ... wirklich einen string aus dem byte[] oder du lässt es so als byte[], wieso willst du unbedingt einen string?
 

HoaX

Top Contributor
einzig beim decrypt darfst du
plaintext = encryptedBytes.toString();
mit
plaintext = new String(encryptedBytes, "ISO-8859-1") ersetzen
 
S

Sascha_

Gast
Arg, das mit dem toString() war natürlich Müll.

Vielen Dank für die Hilfe!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M pfx-Zertifikat in Tomcat für SSL-Verschlüsselung nutzen Allgemeine Java-Themen 14
X Verschlüsselung Allgemeine Java-Themen 18
P String-Verschlüsselung - Frage zur Sicherheit Allgemeine Java-Themen 21
R Verschlüsselung falsch Allgemeine Java-Themen 3
R Verschlüsselung funktioniert nicht Allgemeine Java-Themen 5
J Passwort Verschlüsselung hash Allgemeine Java-Themen 2
D AES Verschlüsselung / Wirklich AES 128-Bit? Allgemeine Java-Themen 4
I Best Practice Verschlüsselung mit SALT Allgemeine Java-Themen 4
A Mehrfache XOR Verschlüsselung Allgemeine Java-Themen 11
Thallius Moderne sichere synchrone Verschlüsselung mit Java? Allgemeine Java-Themen 3
Ananaskirsche Verschlüsselung mit AES Allgemeine Java-Themen 4
E Verschlüsselung Allgemeine Java-Themen 4
F Schlüsselworte RSA Verschlüsselung implementieren Allgemeine Java-Themen 5
S Key (für AES-Verschlüsselung) aus String Allgemeine Java-Themen 4
M Serialisierung & Verschlüsselung Allgemeine Java-Themen 2
K Problem mit Salted - Verschlüsselung Allgemeine Java-Themen 4
Z Java E-Mail Client mit End-to-End-Verschlüsselung Allgemeine Java-Themen 4
J Verschlüsselung von Text? Allgemeine Java-Themen 2
K Vigenere- Verschlüsselung Allgemeine Java-Themen 13
M Verschlüsselung von Text und Files durch RSA (Encoding Problem) Allgemeine Java-Themen 7
T AES-Verschlüsselung mit eigenem 256 Bit Schlüssel Allgemeine Java-Themen 12
DStrohma Verschlüsselung: SALT aus Passwort generieren? Allgemeine Java-Themen 3
G AES Verschlüsselung nur bis 63 Zeichen Länge Allgemeine Java-Themen 2
M Verschlüsselung mit Cipher Allgemeine Java-Themen 5
B XOR Verschlüsselung Allgemeine Java-Themen 7
S Framework für symetrische und asymetrische Verschlüsselung Allgemeine Java-Themen 3
lumo Verschlüsselung Allgemeine Java-Themen 2
H Verschlüsselung mit Blowfish Allgemeine Java-Themen 14
C Interpreter-Fehler AES verschlüsselung mit MD5 key Allgemeine Java-Themen 6
S AES Verschlüsselung - File Headers korrupt Allgemeine Java-Themen 10
A Datei, UTF-8, NTRU-Verschlüsselung Allgemeine Java-Themen 3
B "Verschlüsselung" mit Passwort (XOR bzw. Modulo) Allgemeine Java-Themen 7
B String Verschlüsselung Allgemeine Java-Themen 6
M Verschlüsselung anwenden Allgemeine Java-Themen 6
J Verschlüsselung Allgemeine Java-Themen 22
T MD5 Verschlüsselung Nullen fehlen? Allgemeine Java-Themen 2
L [Exception] RSA Verschlüsselung. Allgemeine Java-Themen 16
C javamail signatur und verschlüsselung Allgemeine Java-Themen 2
R 128 Bit Verschlüsselung/Entschlüsselung in Java? Allgemeine Java-Themen 6
F RSA-Verschlüsselung Allgemeine Java-Themen 4
S Verschlüsselung in Java Allgemeine Java-Themen 2
G Interessant! Verschlüsselung in Java, Charset in der JVM? Allgemeine Java-Themen 14
D Eigener Key bei AES Verschlüsselung Allgemeine Java-Themen 4
T Verschlüsselung von Dateien Allgemeine Java-Themen 8
G Problem mit RSA Verschlüsselung bei .net und Java Allgemeine Java-Themen 1
D Caesar und Vigenère Verschlüsselung Allgemeine Java-Themen 2
alexpetri Verschlüsselung Allgemeine Java-Themen 13
@ [Sicherheit] Speicherung von Keys für Verschlüsselung Allgemeine Java-Themen 4
P Verschlüsselung in PHP -> Entschlüsselung in Java Allgemeine Java-Themen 2
Lazybone Caeser Verschlüsselung Allgemeine Java-Themen 6
S Verschlüsselung mit Cipher Allgemeine Java-Themen 8
S Verschlüsselung Allgemeine Java-Themen 15
J Problem mit Dateien/XOR-Verschlüsselung Allgemeine Java-Themen 5
G RSA-Verschlüsselung Allgemeine Java-Themen 1
P HMACMD5- Verschlüsselung entschlüsseln Allgemeine Java-Themen 2
I Verschlüsselung mit Pwd. - User soll Algorithmus wählen Allgemeine Java-Themen 4
J Probleme bei XOR verschlüsselung ! Allgemeine Java-Themen 5
G Verschlüsselung in Java Allgemeine Java-Themen 9
M RSA Verschlüsselung Allgemeine Java-Themen 7
J Verschlüsselung von Daten Allgemeine Java-Themen 21
severin_96 javax.crypto.IllegalBlockSizeException Allgemeine Java-Themen 7
K Cipherproblem: IllegalBlockSizeException Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben