Passwortgenerator 2
Erzeugt per Zufall ein Passwort in eurer Wunschlänge — aus kleinen Buchstaben und den Ziffern 1 bis 9.
Ein weiterer Passwortgenerator für unser Archiv — dieses Exemplar wurde uns von unserem User Dahn geschickt. Während der große Bruder mit vielen Optionen aufwartet, ist dieser hier bewusst schlicht gehalten: Länge festlegen, Knopf drücken, fertig.
Und genau so bedient ihr auch die Demo: Tragt die gewünschte Passwortlänge ein (vorausgefüllt sind 7 Zeichen) und klickt auf „Passwort erzeugen". Jedes Klicken würfelt ein komplett neues Passwort aus — wenn euch der Vorschlag nicht gefällt, klickt einfach noch einmal.
Als Zeichenvorrat dienen die kleinen Buchstaben von a bis z und die Ziffern 1 bis 9. Auffällig: Die Null ist nicht dabei — so kann es beim Abtippen gar nicht erst zur Verwechslung mit dem Buchstaben O kommen. Übrigens gilt bei Passwörtern: Vor allem die Länge macht die Sicherheit. Jedes zusätzliche Zeichen vervielfacht die Zahl der Möglichkeiten, die ein Angreifer durchprobieren müsste — hier mit jedem Zeichen um den Faktor 35.
Ein ehrlicher Hinweis noch: Das Script benutzt Math.random(), den eingebauten Zufallsgenerator von JavaScript. Der ist für Spiele und Alltagszwecke völlig in Ordnung, aber nicht für kryptografische Zwecke gedacht. Für die Zugangsdaten zu wirklich wichtigen Konten nehmt ihr besser einen Passwortmanager — zum Ausprobieren, Lernen und für unkritische Zwecke ist dieser Generator dafür genau richtig.
So funktioniert das Script
Das Script besteht aus drei Teilen: dem Zeichenvorrat, einer Funktion, die daraus Zeichen für Zeichen ein Passwort zusammensetzt, und einer Funktion, die auf den Knopfdruck reagiert und das Ergebnis anzeigt. Alles steckt in einer sofort ausgeführten Funktion, damit die Variablennamen nicht mit anderen Scripts auf der Seite kollidieren.
const zeichen = "abcdefghijklmnopqrstuvwxyz123456789";
Der Zeichenvorrat ist eine ganz normale Zeichenkette: alle Zeichen, die im Passwort vorkommen dürfen, einfach hintereinander geschrieben. Hier sind das 26 Kleinbuchstaben plus die Ziffern 1 bis 9, also 35 Zeichen.
function passwortErzeugen(laenge) {
let passwort = "";
for (let i = 0; i < laenge; i++) {
passwort += zeichen.charAt(Math.floor(Math.random() * zeichen.length));
}
return passwort;
}
Das Herzstück. Die for-Schleife läuft so oft, wie das Passwort lang werden soll, und hängt in jedem Durchlauf ein zufälliges Zeichen an (+= bedeutet „anhängen"). Das Zufällige daran: Math.random() liefert eine Kommazahl zwischen 0 und 1; multipliziert mit der Länge des Zeichenvorrats (zeichen.length, also 35) und mit Math.floor() abgerundet, ergibt das eine ganze Zahl zwischen 0 und 34 — eine zufällige Position im Zeichenvorrat. charAt() holt das Zeichen an genau dieser Position.
const laenge = Math.floor(Number(document.getElementById("pg2-laenge").value));
if (!laenge || laenge < 1) {
ausgabe.textContent = "Bitte gebt eine Passwortlänge ein, z. B. 7.";
return;
}
Beim Klick liest ausgeben() das Längenfeld aus. Number() macht aus dem eingetippten Text eine Zahl, Math.floor() rundet eventuelle Kommazahlen ab. Die Prüfung !laenge fängt gleich mehrere Problemfälle ab: ein leeres Feld, Text statt einer Zahl und die Null. In all diesen Fällen erscheint ein freundlicher Hinweis in der Ergebnisfläche und return beendet die Funktion.
ausgabe.innerHTML = "Euer Passwort: <strong>" + passwortErzeugen(laenge) + "</strong>";
Ist die Eingabe gültig, wird passwortErzeugen() aufgerufen und das Ergebnis in die Ausgabefläche geschrieben. Weil dafür innerHTML benutzt wird, darf das Passwort in <strong>-Tags stehen und erscheint hervorgehoben — zum Kopieren einfach markieren.
document.getElementById("pg2-erzeugen").addEventListener("click", ausgeben);
Zum Schluss wird die Funktion per addEventListener mit dem Knopf verbunden. Das Script steht dafür unter dem Formular, damit Knopf und Felder bereits existieren, wenn es ausgeführt wird.
Zum Anpassen: Der spannendste Hebel ist die Variable zeichen. Hängt einfach weitere Zeichen an — Großbuchstaben (ABC…), die Null oder Sonderzeichen wie !?#+- — und schon werden die Passwörter deutlich stärker, ohne dass sich am restlichen Script irgendetwas ändert. Auch die Vorbelegung value="7" im Längenfeld könnt ihr natürlich erhöhen.
Script für die eigene Homepage
Kopiert euch den kompletten Code und fügt ihn an der Stelle eurer Seite ein, an der das Script erscheinen soll. Er läuft ohne weitere Dateien und ohne fremde Server.