Hallo Leute.
In meinem Programm gibt es die Möglichkeit ein Passwort einzugeben. Das soll gespeichert werden, aber nur wenn es meinen Vorgaben entspricht. (0-9 A-Z a-z) Also darf es keine Sonderzeichen enthalten.
Da ich mich noch nicht mit der Verschlüsselung beschäftigt habe, ist momentan ein eigener "Algorithmus" im Spiel.
Also nicht lachen. :wink:
Hier ist meine Funktion die das Passwort speichern soll:
Hier meine Methode zum überprüfen des gesamten char-Arrays:
Und die Methode zum Überprüfen einzelner Zeichen, ob diese sich im Gültigkeitsbereich befinden:
Keine Ahnung ob das überhaupt geht :bahnhof:
Ich habe schon aus dem JPasswortField sowohl mit getText() [=Deprecated] als auch mit getPassword() ausgelesen.
Eine Kontrollausgabe gab mir bei getText() den richtigen String aus, bei getPassword() aber nur irgendwelche kryptischen Zeichen (trotz .toString()).
Hier der Aufruf:
Liegt das jetzt an dem JPasswortField-Problem oder ist meine Logik bei der Gültigkeitsprüfung für'n A***h ???? :bahnhof:
Bitte helft mir, auch wenn ich euch mit Code zubombe... :wink:
CU Olli
In meinem Programm gibt es die Möglichkeit ein Passwort einzugeben. Das soll gespeichert werden, aber nur wenn es meinen Vorgaben entspricht. (0-9 A-Z a-z) Also darf es keine Sonderzeichen enthalten.
Da ich mich noch nicht mit der Verschlüsselung beschäftigt habe, ist momentan ein eigener "Algorithmus" im Spiel.
Also nicht lachen. :wink:
Hier ist meine Funktion die das Passwort speichern soll:
Code:
// Passwort in der Textdatei speichern
public void SavePassToFile(String pass)
{
try
{
System.out.println("***\nPasswort: " + pass + "\n***");
char p[] = pass.toCharArray(); // String pass in char-Array umwandeln
if(checkPassValidity(p)) // Aufruf der Gültigkeitsabfrage
{
System.out.println(pass);
mf.fw = new FileWriter(mf.filePass);
for(int i = 0; i < p.length; i++)
{
mf.fw.write(p[i]-20);
System.out.println("p["+i+"]= "+ p[i]+ " p["+i+"]-20= "+(char)(p[i]-20));
}
mf.fw.close();
System.out.println("***\nPasswort wurde gespeichert\n***");
}
else
System.out.println("***\nPasswort enthält ungültige Zeichen\n***");
}
catch (Exception e)
{
System.err.println("Fehler: " + e.getMessage());
}
}
Hier meine Methode zum überprüfen des gesamten char-Arrays:
Code:
public boolean checkPassValidity(char p[])
{
char cTemp;
for(int i = 0; i < p.length; i++)
{
cTemp = p[i];
if(isForbiddenChar(cTemp))
return false;
}
return true;
}
Und die Methode zum Überprüfen einzelner Zeichen, ob diese sich im Gültigkeitsbereich befinden:
Code:
public boolean isForbiddenChar(char cTemp)
{
char c = cTemp;
if( c > 47 && c < 123 )
{
switch ( c )
{
// Zeichen zwischen Zahlen und Großbuchstaben
case 58: return false;
case 59: return false;
case 60: return false;
case 61: return false;
case 62: return false;
case 63: return false;
case 64: return false;
// Zeichen zwischen Groß- und Kleinbuchstaben
case 91: return false;
case 92: return false;
case 93: return false;
case 94: return false;
case 95: return false;
case 96: return false;
default: return true;
}
}
else
return false;
}
Keine Ahnung ob das überhaupt geht :bahnhof:
Ich habe schon aus dem JPasswortField sowohl mit getText() [=Deprecated] als auch mit getPassword() ausgelesen.
Eine Kontrollausgabe gab mir bei getText() den richtigen String aus, bei getPassword() aber nur irgendwelche kryptischen Zeichen (trotz .toString()).
Hier der Aufruf:
Code:
public void getServerDataAndSave()
{
mf.sTargetPass = pfTargetPass.getPassword().toString().trim(); // <--- so ????
//mf.sTargetPass = pfTargetPass.getText().trim(); // <--- oder so ????
mf.SavePassToFile(mf.sTargetPass);
}
Liegt das jetzt an dem JPasswortField-Problem oder ist meine Logik bei der Gültigkeitsprüfung für'n A***h ???? :bahnhof:
Bitte helft mir, auch wenn ich euch mit Code zubombe... :wink:
CU Olli