Inhalt
- Einführung
- jQuery
- Abschluss
Einführung
Bezugnehmend zum Artikel für die Passwortprüfung, nun das Gegenstück. Es wird mit wenigen Mitteln ein Passwort automatisch generiert, was die Passwortüberprüfung besteht.
jQuery
Als erstes binden wir das jQuery-Plugin in den Headbereich unserer Seite ein. Hier findet Ihr alle relevanten Links. Über die Kommentare werden alle wichtigen Informationen vermittelt, um die kommende Funktion zu nutzen.
(function() {
// Erstellen der Funktion "buildPassword" mit dem Parameter minPassword
// Dieser bestimmt die Länge, die das Passwort mindestens haben muss
$.fn.buildPassword = function(minPassword)
{
// Speicherung des automatischen Passwortes
var result = "";
// Die Parameter für die Passworterstellung
var params = ["1234567890",
"abcdefghijklmnopqrstuvwxyz",
"ABCDEFGHIJKLMNOPQRSTUVWXYZ",
"!\"§$%&/()=]["];
// Parameter mischen
params.sort(function()
{
return 0.5 - Math.random()
});
// Prüfe, ob die Passwortlänge mit der Mindestlänge übereinstimmt,
// bei nein, führe die Schritte weiter aus.
while(result.length < minPassword)
{
// Zähle die Bedingungen für die Passworterstellung
for(j = 0; j < params.length; j++)
{
// Ermittle aus der aktuellen Zeichenkette ein zufälliges Zeichen
// aus der max. Länge und füge es an
result += params[j].substr(
Math.floor(
(Math.random() * params[j].length) + 1), 1);
}
}
// Gebe das Passwort aus
return this.html(result.substr(0, minPassword));
};
}(jQuery));
Die Funktion kann jetzt in den “script” - Bereich eingefügt und genutzt werden. Im folgenden Beispiel wird dargestellt, wie die Funktion genutzt wird.
// Irgendwo im Bodybereich
<div><p></p></div>
// Irgendwo im Scriptbereich
// Even. Footer
$("p").buildPassword(50);
// Beispielausgabe:
// 0hQ=4bM[5jJ(0nZ]nG]9wG[7wH/5nI8lW)4jB$9mN7uQ&3wC%6K)
Abschluss
Die Funktion stellt nur eine Möglichkeit da, wie man ohne viel Aufwand einen soliden Passwortgenerator baut. Es gibt auch genug Möglichkeiten, die Funktion ausbaufähiger zu gestalten. Zum Beispiel wäre es möglich, die Parameter auszulagern und somit mehr Flexibilität zu erreichen.
Wenn Unklarheiten oder Verbesserungsvorschläge sind, dann bitte ich um ein kurzes Feedback.
Viele Grüße
_ Cyrix _