JavaScript Passwortüberprüfung

Floletni

Commander
Registriert
Sep. 2007
Beiträge
2.329
Ich bin grad dabei eine Passwortüberprüfung mit JavaScript zu schreiben. Bevor jetzt die Kommentare wegen JavaScript kommen: Es ist ein intern verwendet Fomular und auf der nächsten Seite wird das Passwort mit php noch mal gechecked.
Auf jeden Fall gibt es ein Problem und eine Sache wo ich nicht weiß wie ich sie programmieren soll. JavaScript neuer Neuling, wenn man es so will.

Das erste Problem ist folgendes: Das Passwort soll auf unzulässige Zeichen überprüft werden. Einfachheitshalber hbae ich den RegEx aus mein php Teil genommen. Leider werden die verbotenen Zeichen nicht im String erkannt. Nur wenn man sie an den Anfang schreibt.

Hier ein Beispiel-Code
Code:
<script language="JavaScript" type="text/javascript">
function Passwort() {
pw1=document.getElementById("Passwort").value;
pw2=document.getElementById("Passwort2").value;
if (pw1 == "" && pw2 == "") 
{
document.getElementById("demo").innerHTML="Kein Passwort eingegeben";
}
else if (pw1 != pw2)
{
document.getElementById("demo").innerHTML="Passwörter stimmen nicht überein";
}
else if (pw1.match(/^[\\,\[,\],\{,\},\",\',ö,ä,ü,Ö,Ä,Ü,ß]+$/))
{
document.getElementById("demo").innerHTML="Das Passwort enthält verbotene Zeichen";
}

else
{
  if(pw1.length < 7)
  {
  document.getElementById("demo").innerHTML="Das Passwort ist zu kurz.";
  }
  else
  {
  document.getElementById("demo").innerHTML="Richtig";
  }
}
}
</script>

Passwort:<br>
<input name="Passwort" type="text" id="Passwort"><br><br>
Wiederholung:<br>
<input name="Passwort2" type="text" id="Passwort2" onChange="Passwort()"><br>

<type="text" id="demo">

Die nächste Sache ist folgende: Momentan muss man aus den Feld rausklicken, damit er die Funktion ausführt. Geht das irgendwie auch on the Fly? Sobald sich ein Zeichen ändert? Bis jetzt habe ich da kein vernünftigen Ansatz gefunden.

Danke für euere Hilfe.
 
Du solltest das Topic eher mit Formularvalidierung betiteln anstatt mit Passwortüberprüfung.
Passwortüberprüfung ist der Test, ob das eingegebene Passwort mit dem erwarteten übereinstimmt.

Zu deinem Problem: Wenn pw1.match(/^[\\,\[,\],\{,\},\",\',ö,ä,ü,Ö,Ä,Ü,ß]+$/) zu pw1.match(/[\\,\[,\],\{,\},\",\',ö,ä,ü,Ö,Ä,Ü,ß]/) änderst sollte es klappen. ^ und $ bedeuten, dass der gesamte String nur aus diesen Zeichen bestehen soll. Aber warum willst du diese Zeichen überhaupt verbieten? Sonderzeichen erhöhen die Passwortsicherheit.
 
Man kann ja Ausrufezeichen, das Dollar Zeichen ect verwenden. Nur eben ekige sowie geschweifte Klammern und Gänsefüsschen nicht. Die könnten uns den Code zerschießen. DIe Umlaute könnten auch Probleme machen.

So wollen es jedenfalls die Chefs ;)

Das Dollarzeiche weg zunehmen hat nichts gebracht.
 
Zuletzt bearbeitet:
Hi,

Genau das soll sein JS doch machen ...

Nein. Eine PasswortVALIDIERUNG, also eine Gültigkeitsprüfung, ob nur gültige Zeichen verwendet werden, ist etwas anderes als eine Passwortüberprüfung, also eine Prüfung, ob das Passwort mit dem in (z.B.) einer Datenbank hinterlegten Passwort übereinstimmt.

VG,
Mad
 
Floletni schrieb:
Man kann ja Ausrufezeichen, das Dollar Zeichen ect verwenden. Nur eben ekige sowie geschweifte Klammern und Gänsefüsschen nicht. Die könnten uns den Code zerschießen. DIe Umlaute könnten auch Probleme machen.

So wollen es jedenfalls die Chefs ;)

Das Dollarzeiche weg zunehmen hat nichts gebracht.

Nicht nur das Dollarzeichen, auch das ^ musst du entfernen.
 
Zuletzt bearbeitet:
@Madman1209
Laut meinen Synonymkenntnissen ist Validierung eine Überprüfung.

@Turas
Stimmt die müsste wirklich auch noch raus, werde ich mal ansprechen.

Hat keiner eine Ahnung wie ich die zweite Sachen lösen könte?
 
Hi,

Laut meinen Synonymkenntnissen ist Validierung eine Überprüfung.

Sehe ich anders. Mag von der reinen Definition so sein, aber im Porgrammiersprachgebrauch:
Passwortvalidierung: Das Kennwort ist valide, entspricht also den Vorgaben
Passwortüberprüfung: Das Kennwort stimmt mit einem anderen überein

Aber egal, mach wie du meinst.

Zu deinem zweiten Problem: Warum löst du nicht einfach beim KeyUp-Ereignis die Prüfung aus? Dann wird jedesmal, wenn der Finger von der Taste genommen wird geprüft.

VG,
Mad
 
Danke für den Tipp mad.

Fehlt nur noch die Erkennung der Zeichen di auf derschwarzen Liste stehen. Ich werd noch mal ein paar Sachen ausprobieren.
 
Zurück
Oben