tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Billie
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
876
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    FIAE10 FIAE10 ist offline Rookie
    Registriert seit
    Sep 2011
    Beiträge
    6
    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
     

  2. #2
    Avatar von Billie
    Billie Billie ist offline Mitglied Platin
    Registriert seit
    Jan 2003
    Ort
    Arzl im Pitztal (Tirol)
    Beiträge
    510
    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).
    FIAE10 bedankt sich. 
    Fann Ég Fjalli Fallega Steina
    Faldi Dá Alla Vildi Deim Leyna
    Huldi Dar Hellisskúta Heillasteina
    Alla Mína Una eth slegu Óskasteina

  3. #3
    Anime-Otaku Anime-Otaku ist offline Mitglied Brillant
    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:
    Code java:
    1
    
    System.out.println("Hello World");
    [java]System.out.println("Hello World");[/java]
    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/

  4. #4
    FIAE10 FIAE10 ist offline Rookie
    Registriert seit
    Sep 2011
    Beiträge
    6
    Danke, arbeite nun ohne Probleme direkt mit dem byte-Array weiter.
     

Ähnliche Themen

  1. Verschlüsselung in Flash, entschlüsseln in Java
    Von giggei im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 21.04.09, 15:48
  2. Antworten: 1
    Letzter Beitrag: 04.04.09, 20:06
  3. RSA-Verschlüsselung
    Von Azi im Forum Security (Viren, Trojaner, Spam)
    Antworten: 5
    Letzter Beitrag: 30.12.07, 13:05
  4. pgp verschlüsselung
    Von aspera im Forum PHP
    Antworten: 5
    Letzter Beitrag: 17.03.06, 11:51
  5. Verschlüsselung?
    Von sam im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 05.03.03, 22:24