# Applet und Verschlüsselung von Passwörtern



## tora (30. Okt 2007)

Hallo 

Ich habe eine Frage zur Verschlüsselung in einem Applet. Ich verstehe nämlich gerade die Welt nicht mehr. Jedes mal, wenn ich das gleiche Passwort eingebe, ist der verschlüsselte Wert ein anderer. In der normalen Java-Anwendung hat alles gut geklappt und jetzt als Applet eingebettet in einer HTML-Seite kommt jedes Mal ein anderer Wert raus. Klar, dass man sich dann nicht anmelden kann.
Habt ihr eine Idee, woran das liegen könnte?
Ich habe ja die HTML-Seite im Verdacht, denn wenn ich das Applet im Appletviewer öffne, dann klappt auch noch alles.   :roll: 


```
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>

	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
	<title>Coloring Book applet</title>
	<meta name="generator" content="BBEdit 6.5.2" />
	<link rel="stylesheet" href="/styles/main.css" type="text/css" />

</head>

<body>

	<applet archive="applet.jar"
	codebase="." code="applet.Applet.class" width="1100" height="650">

	</applet>

</body>

</html>
```
So sieht in etwa meine HTML-Seite aus. Wer weiß, was daran falsch ist??

Danke!   :wink:


----------



## stevieboy (30. Okt 2007)

Ich kann nur für mich sprechen aber ohne den Code in deinem Applet ist es doch schwer dir zu helfen.

Die Wechselwirkungen zwischen Java und HTML kann man erst sehen, wenn man weiß wie beide Seiten aussehen.


----------



## Guest (31. Okt 2007)

Hallo,

hier ist der Verschlüsselungscode aus dem Applet


```
String passwd = new String(tfPasswd.getPassword()); 

Cipher cipher; 
SecureRandom sr = new SecureRandom("seed".getBytes("UTF-8")); 
KeyGenerator kGen = KeyGenerator.getInstance("DESEDE"); 
kGen.init(168,sr); 
Key key = kGen.generateKey(); 
cipher = Cipher.getInstance("DESEDE/ECB/PKCS5Padding"); 
                
// encrypt 
cipher.init(Cipher.ENCRYPT_MODE,key); 
byte[] bIn = cipher.doFinal(passwd.getBytes("UTF-8")); 
                
// convert encrypted bytes into string 
String passwdEncoded = new String(Base64.encode(bIn)); 
System.out.println("loginframe: "+passwdEncoded);
```

Die letzte Zeile liefert immer ein anderes Ergebnis, wenn das Applet über die HTML-Seite aufgerufen wird, obwohl das Passwort immer das selbe ist.


----------



## stevieboy (31. Okt 2007)

Du erstellst ja auch bei jedem Aufruf einen neuen Verschlüsselungskey. Du musst den Key speichern, wenn Du das Passwort später abgleichen willst.

(Oder liege ich hier falsch?)


----------



## Guest (31. Okt 2007)

Danke! Das war's!

Mache es jetzt ganz anders mit SHA und das klappt gut.


----------

