Cookies für Statistik und Werbung
Wir setzen Cookies für Statistik und Werbung ein, beides geht an Google. Wenn du ablehnst, ändert sich für dich sichtbar nichts.Zur Datenschutzseite
Ein Passwort aus dem kryptografischen Zufallsgenerator deines Browsers, mit der Länge und den Zeichengruppen, die du wählst. Es entsteht auf deinem eigenen Rechner und wird nirgendwohin geschickt — bei einem Passwort ist das keine Nettigkeit, sondern der ganze Punkt: eines, das über das Netz zu dir gekommen ist, hat jemand anders sehen können.
Lässt l, I, 1, O und 0 weg. Nützlich, wenn du es vom Bildschirm ablesen musst, und es kostet ein paar Bit.
So funktioniert es
Die Zeichen werden mit `crypto.getRandomValues` gezogen, dem kryptografischen Zufallsgenerator des Browsers, der aus dem Entropievorrat des Betriebssystems gespeist wird. Die Alternative, `Math.random`, gibt es in jedem Browser und sie scheidet hier aus: ihr Verfahren ist öffentlich, ihr innerer Zustand klein, und diesen Zustand aus wenigen Ausgaben zurückzurechnen ist ein gelöstes Problem, für das veröffentlichter Code existiert. Ein darauf gebauter Generator liefert Passwörter, deren tatsächlicher Schlüsselraum so groß ist wie dieser Zustand — egal, wie lang das Passwort aussieht.
Ansehen kann man den beiden das nicht. Genau deshalb lohnt es sich zu sagen, welcher verwendet wird, und deshalb gibt es in diesem Projekt einen Test, der fehlschlägt, sobald `Math.random` in dieser Datei auftaucht.
Aus einem zufälligen Byte ein zufälliges Zeichen zu machen, schreibt man üblicherweise als `byte % anzahl` — und das ist verzerrt, sobald 256 nicht glatt durch die Größe des Zeichenvorrats teilbar ist. Bei sechsundzwanzig Buchstaben decken die Bytes 0 bis 255 `a` bis `v` je zehnmal ab und `w` bis `z` nur neunmal. Die ersten zweiundzwanzig Buchstaben kommen also rund elf Prozent häufiger vor.
Der Fehler ist klein und er ist echt, und er ist der mit Abstand häufigste in Generatoren dieser Art. Die Abhilfe besteht darin, die Werte in diesem kurzen Rest wegzuwerfen und neu zu ziehen — eine Schleife, im Mittel weniger als zwei Ziehungen je Zeichen. Genau das passiert hier.
Entropie wird in Bit angegeben, und das ist die ehrliche Art, Passwortstärke zu beschreiben: jedes Bit verdoppelt die Zahl nötiger Versuche. Ein zwanzigstelliges Passwort aus allen vier Gruppen hat etwa 130 Bit, also ungefähr 2^130 Möglichkeiten — eine Zahl ohne physikalische Entsprechung, was der Punkt daran ist.
Es macht auch die Abwägungen sichtbar. Die Sonderzeichen bei zwanzig Stellen wegzulassen kostet etwa 11 Bit. Verwechselbare Zeichen zu entfernen kostet etwa 3. Vier Stellen mehr bringen etwa 26. Deshalb schlägt Länge jedes Mal Komplexität: die vier zusätzlichen Zeichen sind mehr wert als sämtliche Sonderzeichen der Tastatur, und sie sind leichter zu verkraften bei einem Passwort, das du ohnehin nie tippen wirst.
Wenn du Ziffern anhäkst, enthält das Passwort eine Ziffer. Das ergibt sich nicht von selbst — zieht man zwanzig Zeichen zufällig aus einem gemischten Vorrat, besteht eine reale Chance, dass aus einer Gruppe keines dabei ist, und heraus kommt ein Passwort, das eine Richtlinie ablehnt und das du neu erzeugen musst.
Die Zeichen, die das sicherstellen, werden zuerst gesetzt und danach wird das Ganze gemischt. Sonst begänne jedes Passwort mit einem Kleinbuchstaben, dann einem Großbuchstaben, dann einer Ziffer, dann einem Sonderzeichen — ein Muster, das die ersten Stellen aus dem Rateproblem eines Angreifers herausnimmt. Die Garantie kostet einen Bruchteil eines Bit, deutlich weniger als die Rundung der angezeigten Zahl.
Anführungszeichen und Rückwärtsschrägstriche fehlen mit Absicht. Sie sind die Zeichen, die einen Shell-Befehl, einen CSV-Export, eine Verbindungszeichenfolge oder eine Konfigurationsdatei zerlegen — und ein Passwort, das sich nicht dort einfügen lässt, wo es hin soll, ist ein Passwort, das jemand durch ein schwächeres ersetzt.
Alles andere aus dem druckbaren ASCII-Bereich ist da. Lehnt ein System das Ergebnis ab, liegt es fast immer an einer unausgesprochenen Höchstlänge oder einer Sperrliste für Sonderzeichen — beides Hinweise darauf, dass dort Passwörter auf eine Weise gespeichert werden, wie es nicht sein sollte, und ein guter Grund, dieses Passwort sonst nirgends zu verwenden.
Ein starkes Passwort, das du mehrfach verwendest, ist ein schwaches Passwort, weil seine Stärke in dem Moment bedeutungslos wird, in dem irgendeine Seite mit diesem Passwort geknackt wird. Der Wert des Erzeugens liegt darin, dass jedes Konto ein eigenes bekommt — und das geht nur, wenn sich etwas die Dinger für dich merkt.
Also nimm einen Passwortmanager, irgendeinen, auch den in deinem Browser eingebauten. Der Generator hier ist für den Moment, in dem du vor einem Formular stehst. Was ihn wertvoll macht, ist, dass das Ergebnis irgendwo landet, wo du es wiederfindest.
Nein, und bei diesem Werkzeug zählt das mehr als bei jedem anderen auf der Seite. Es wird von deinem eigenen Browser erzeugt und existiert nur in der Seite, bis du es kopierst. Nichts wird hochgeladen, nichts protokolliert, kein Konto nötig. Ein Passwortgenerator, der auf einem Server läuft, ist ein Passwortgenerator, dessen Ausgabe jemand anders gesehen hat.
Sechzehn ist eine vernünftige Untergrenze, zwanzig ist besser. Jenseits von ungefähr dreißig ist gegen keinen realistischen Angreifer mehr etwas zu gewinnen, die Länge begrenzt also nur noch das, was das System annimmt. Da du es einfügen und nicht tippen solltest, kostet dich Länge nichts.
Nur wenn du das Passwort vom Bildschirm ablesen und woanders eintippen musst — an einem Fernseher, von einem Ausdruck, an einem Gerät ohne Zwischenablage. Es verkleinert den Zeichenvorrat und kostet ein paar Bit, was dir die Entropieangabe beim Umschalten zeigt.
In keinem sinnvollen Sinn. Mit den Standardeinstellungen gibt es rund 2^130 mögliche Ergebnisse — eine Wiederholung passiert also selbst dann nicht, wenn jeder lebende Mensch eine Sekunde lang je eines erzeugte, das ganze Alter des Universums hindurch.
Ja, ohne Konto und ohne Begrenzung, wie viele du erzeugst. Es läuft auf deinem Rechner, uns kostet es also nichts, dich die Schaltfläche noch einmal drücken zu lassen.