05. oktober 2004 - 12:12Der er
14 kommentarer og 1 løsning
Fejl med Kryptering i Java
Hej !!!
Jeg har lavet en chat, som krypterer beskeder mellem sender og modtager. Problemet er bare, at jeg får denne exception: BadPaddingException: Given final block not properly padded
Første gang programmet køres, er der ingen problemer. Jeg har prøvet at teste lidt, og der sker fejl, når man feks. skriver en string som "hehe", "haha" osv. (gentagelser).
public class Anmodning implements Runnable { private Socket forbindelse; Encrypt e;
Anmodning(Socket forbindelse) { this.forbindelse = forbindelse; e = new Encrypt(); }
public void run() { try { PrintWriter ud = new PrintWriter(forbindelse.getOutputStream()); BufferedReader ind = new BufferedReader( new InputStreamReader(forbindelse.getInputStream()));
String anmodning; while ((anmodning = ind.readLine()) != null) { System.out.println(new Date()+" "+anmodning); anmodning = e.runDecrypt(anmodning); //HER KALDES ENCRYPT-KLASSENS runDecrypt-metode MED DEN MODTAGET STRING System.out.println(new Date()+" "+anmodning); ud.flush(); } forbindelse.close(); } catch (Exception e) { e.printStackTrace(); } } }
Client har det samme output fra encrypt-metoden, som server sender til decrypt-metoden.
Det er ret mærkeligt. Når jeg f.eks. skriver "hej" eller "dav" sker der ingen fejl. Men når jeg skriver med, kommer der altid en fejl. Det er som om der er ord, den ikke kan håndtere. Fatter det ikke !!!
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.