Menü

Werkzeuge durchsuchenÄnderungsprotokoll

zum Navigieren zum ÖffnenBeschreiben Sie das Problem, nicht das Tool

Generieren Sie ein sicheres Passwort

Zieht zeichenweise ein Passwort aus dem kryptografischen Zufallszahlengenerator des Browsers und meldet die Entropie des Generators, der es erzeugt hat, statt eine Vermutung über die Stärke der Zeichenfolge. Das Passwort wird niemals in die Adressleiste geschrieben, niemals gespeichert und niemals irgendwohin gesendet.

Länge kauft mehr als Vielfalt. Jeder zusätzliche Charakter vervielfacht die Arbeit, die ein Angreifer leisten muss.

a bis z. Sechsundzwanzig Zeichen.

A bis Z. Sechsundzwanzig Zeichen.

0 bis 9. Zehn Zeichen.

Die 28 ASCII-Satzzeichen abzüglich der Anführungszeichen und des Backslashs, die beim Einfügen in eine Shell oder eine JSON-Datei unterbrochen werden.

Ihr Passwort
Gs!2@|]UokmLt&h|GvDp
Wird in dieser Registerkarte generiert. Es wird nicht in die Adressleiste geschrieben, nicht gespeichert und niemals irgendwohin gesendet.
Entropie, in Bits
129,7
Charaktere zur Auswahl
90
Durchschnittliche Zeit zum Erraten
174 quintillion years

Die Ergebnisse werden ohne Gewähr für ihre Richtigkeit bereitgestellt. Die Methode und ihre Quellen stehen unten, damit Sie den Rechenweg prüfen können.

So funktioniert es

Was das bewirkt

Es entnimmt dem kryptografischen Zufallszahlengenerator des Browsers zeichenweise ein Passwort und teilt Ihnen dann mit, wie viel Zufälligkeit tatsächlich darin enthalten ist. Die zweite Hälfte ist der Teil, den die meisten Generatoren falsch machen, und es ist der einzige Teil, dem man vertrauen kann.

Die Stärke eines Passworts ist keine Eigenschaft der Zeichenfolge. Es ist eine Eigenschaft des Prozesses, der es erzeugt hat: wie viele gleichwahrscheinliche Passwörter stattdessen hätten herauskommen können. Tr0ub4dor&3 sieht stark aus, ist es aber nicht, denn der Prozess, der es hervorgebracht hat, bestand darin, dass eine Person in einem Wörterbuchwort Buchstaben durch Ziffern ersetzte. Zwanzig einheitlich zufällig gezogene Zeichen sind stark, selbst wenn einer von ihnen zufällig etwas buchstabiert, da ein Angreifer keine Möglichkeit hat, zu wissen, dass sie es buchstabieren.

Die Methode

Jedes Byte stammt von crypto.getRandomValues, definiert in der Web Cryptography-Spezifikation und unterstützt durch den kryptografischen Generator des Betriebssystems. Math.random wird nirgendwo verwendet, und es gibt einen Test, der fehlschlägt, falls dies jemals der Fall sein sollte. Math.random ist ein schneller, nicht kryptografischer Algorithmus, dessen gesamter interner Zustand aus einigen seiner eigenen Ausgaben wiederhergestellt werden kann, was bedeutet, dass ein Passwort ausreichen kann, um das nächste vorherzusagen.

Der zweite Fehler passiert normalerweise, wenn man ein zufälliges Byte in ein zufälliges Zeichen umwandelt. Ein Byte ist 0 bis 255 und das Alphabet besteht hier aus 90 Zeichen, und 256 ist kein Vielfaches von 90. Wenn man also den Rest direkt nimmt, werden die ersten 76 Zeichen des Alphabets dreimal pro 256 Bytes zurückgegeben und die restlichen 14 nur zweimal – eine 50-prozentige Tendenz zum Anfang des Alphabets. Stattdessen wird jedes Byte bei oder über 180, dem größten ganzzahligen Vielfachen von 90, verworfen und ein anderes gezogen. Die Kosten liegen deutlich unter einem zusätzlichen Byte pro Zeichen; Der Vorteil besteht darin, dass jeder Charakter genauso wahrscheinlich ist wie jeder andere.

„Mindestens eines von jeder Art“ wird durch Ablehnung und nicht durch Reparatur behandelt. Die übliche Abkürzung besteht darin, ein Zeichen jeder erforderlichen Klasse an einer festen Position zu platzieren und den Rest zu mischen, was zu einer Verteilung führt, die nicht gleichmäßig ist und deren Entropie niemand angeben kann. Dieses Tool zeichnet einen ganzen Kandidaten, überprüft ihn und wirft den Kandidaten weg, wenn eine Klasse fehlt, und zeichnet einen anderen. Dadurch wird der Satz gültiger Passwörter gleichmäßig abgetastet, was bedeutet, dass die Entropie des Ergebnisses genau dem Logarithmus zur Basis 2 der Anzahl der vorhandenen gültigen Passwörter entspricht.

Sie zu zählen ist Inklusion und Exklusion gegenüber den Klassen:

valid = SUM over subsets S of the classes of (-1)^|S| x (A - size(S))^L

  A = alphabet size, L = length, size(S) = characters in the classes in S

bits = log2(valid)
     = L x log2(A) + log2( SUM (-1)^|S| ((A - size(S)) / A)^L )

In der zweiten Zeile wird der Code ausgeführt. Direkt berechnet ist die erste eine Differenz zwischen Zahlen um zehn bis zweihundertfünfzig, die keine Gleitkommazahl aufnehmen kann; Wenn man zunächst durch A^L dividiert, stellt jeder Term ein Verhältnis zwischen Null und Eins dar, und die Summe bleibt bei jeder Länge genau.

Vor dem Weiterlesen

Zwanzig Zeichen aus einem 90-Zeichen-Alphabet sind 129,8371 Bit. Dann kreuzen Sie von jeder Art mindestens eins an. Was kostet diese Anforderung?

  • Es kann und tut es: Es schließt jede Zeichenfolge aus, in der eine Klasse fehlt, sodass weniger gültige Passwörter vorhanden sind, zu denen man gehören kann.

  • Ja – 129,6891 gegenüber 129,8371. Kaum messbar.

  • Das sind die Kosten für die Shortcut-Implementierung, nicht für die Regel. Dieses Tool verwendet es nicht.

0,148 Bit, was 129,8371 auf 129,6891 reduziert. Es ist so klein, weil 90,25 % der zwanzigstelligen Zeichenfolgen zufällig bereits alle vier Arten enthalten, sodass die Regel weniger als ein Zehntel der Möglichkeiten verwirft. Wenn Sie es mit dem vergleichen, was ein einzelnes zusätzliches Zeichen kostet – 6,49 Bit, also vierzigmal so viel –, erweist sich die Komplexitätsrichtlinie, auf der Ihre Bank besteht, als Rundungsfehler, während die Längenbeschränkung, die sie zusätzlich auferlegt, die Sache ist, die Sie tatsächlich kostet. Das Tool ermittelt diese Zahl ehrlich, indem es ganze Kandidaten zieht und ungültige verwirft. Das Ergebnis ist also eine einheitliche Stichprobe des gültigen Satzes und seine Entropie ist genau log2 der Anzahl der vorhandenen gültigen Passwörter.

Ein zufälliges Byte in ein zufälliges Zeichen umwandeln
  1. byte = 0 to 255,  alphabet = 90

    Jedes Byte stammt von crypto.getRandomValues. Math.random wird nirgendwo verwendet und ein Test schlägt fehl, falls dies jemals der Fall sein sollte.

  2. character = byte % 90     <- wrong

    256 ist kein Vielfaches von 90, daher werden die ersten 76 Zeichen dreimal pro 256 Bytes zurückgegeben und die anderen 14 nur zweimal. Eine 50-prozentige Ausrichtung auf den Anfang des Alphabets.

  3. if (byte >= 180) draw another

    180 ist das größte ganze Vielfache von 90 unter 256. Das Wegwerfen des Rests macht den Rest gleichmäßig.

  4. character = byte % 90

    Jetzt ist jeder Charakter genauso wahrscheinlich wie jeder andere. Die Kosten liegen deutlich unter einem zusätzlichen Byte pro Zeichen.

Ein gelungenes Beispiel

Zwanzig Charaktere, alle vier Arten eingeschaltet, Doppelgänger erlaubt, mindestens einer von jeder Art erforderlich.

Alphabet26 + 26 + 10 + 28 = 90
Unbeschränkte Entropie20 x log2(90) = 129,8371 Bit
Anteil der Saiten, die alle vier Arten enthalten90,25 %
Entropie wie erzeugt129,6891 Bit, angezeigt als 129,7
Durchschnittliche Schätzungen erforderlich2 hoch 128,6891
Bei 100 Milliarden Schätzungen pro Sekunde174 Trillionen Jahre

Die Regel, die die Komplexitätsrichtlinie einer Website erfüllt, kostet also 0,148 Bit, was einen Rundungsfehler im Vergleich zu dem, was oft angenommen wird, und dem, was ein einzelnes zusätzliches Zeichen kostet, von 6,49 Bit darstellt.

Die gleichen Einstellungen in anderen Längen:

LängeEntropieDurchschnittliche Zeit zum Erraten
850,9 Bit3 Stunden
1277,4 Bit32,1 Tausend Jahre
16103,6 Bit2,46 Billionen Jahre
20129,7 Bit174 Trillionen Jahre
128831,0 Bit2,2 x 10^231 Jahre

Dies sind die gleichen Zahlen, die in der Testdatei dieses Tools angegeben sind. Wenn sich also die Formel jemals ändert, ohne dass sich diese Seite mit ändert, schlägt der Build fehl.

Was es nicht tut

Es vergleicht das Passwort nicht mit einem Verstoßkorpus, und das ist auch nicht nötig: Ein zufällig aus 90 Zeichen gezogenes Passwort ist noch nie in einem solchen Korpus aufgetaucht. Es speichert nichts, daher gibt es keinen Verlauf und keine Möglichkeit, ein Passwort wiederherzustellen, wenn Sie den Tab schließen. Kopieren Sie es zuerst in einen Passwort-Manager. Es weiß nicht, wie das andere Ende das speichert, was Sie ihm geben, was die Annahme ist, die die Zeit zum Erraten am meisten verschiebt: 100 Milliarden Vermutungen pro Sekunde sind richtig für einen schnellen ungesalzenen Hash und äußerst pessimistisch für Argon2.

Und es kann auch nicht helfen, wenn Passwörter tatsächlich auf zwei Arten scheitern. Durch die Wiederverwendung werden aus einer Sicherheitsverletzung viele und beim Phishing wird ein 128-Bit-Geheimnis ebenso leicht preisgegeben wie ein vierstelliges. Die Entropie ist eine Untergrenze für den Aufwand beim Erraten und kein Maß dafür, wie sicher ein Konto ist.

So wird es gemacht

  1. Erstellen Sie das Alphabet, indem Sie die aktivierten Zeichenklassen zusammenfügen – 26 Kleinbuchstaben, 26 Großbuchstaben, 10 Ziffern und 28 ASCII-Satzzeichen, wobei die beiden Anführungszeichen, der Backtick und der Backslash weggelassen werden.
  2. Wenn ähnlich aussehende Zeichen ausgeschlossen sind, entfernen Sie das große i, das kleine L, die Eins, den senkrechten Strich, die Null und das große O aus diesem Alphabet, bevor etwas anderes passiert.
  3. Berechnen Sie die Ablehnungsgrenze – das größte ganze Vielfache der Alphabetgröße, das nicht größer als 256 ist. Bei einem Alphabet mit 90 beträgt diese Grenze 180.
  4. Zeichnen Sie ein Byte aus crypto.getRandomValues. Verwerfen Sie es, wenn es den Grenzwert erreicht oder überschreitet, da das Zusammenfügen mit einem Rest dazu führen würde, dass die ersten paar Zeichen des Alphabets wahrscheinlicher sind als der Rest. Andernfalls übernehmen Sie das Zeichen am Rest dieses Bytes.
  5. Wiederholen Sie diesen Vorgang, bis der Kandidat die gewünschte Länge hat.
  6. Wenn mindestens eine Sorte von jeder Art erforderlich ist und dem Kandidaten eine Sorte fehlt, werfen Sie den gesamten Kandidaten weg und zeichnen Sie eine neue. Reparieren Sie es nicht, indem Sie ein Zeichen ersetzen, denn dadurch entsteht eine Verteilung, deren Entropie niemand angeben kann.
  7. Zählen Sie die Passwörter, die die Einstellungen durch Ein- und Ausschluss über die Klassen erzeugen können, und geben Sie den Logarithmus zur Basis 2 dieser Zählung als Entropie in Bits an.

Wovon es ausgeht

  • Die Entropiezahl beschreibt den Generator, nicht den String. Eine Folge von 20 Kleinbuchstaben ist genauso stark wie jede andere Darstellung mit den gleichen Einstellungen, da ein Angreifer keine Möglichkeit hat zu wissen, dass es so herausgekommen ist.
  • Wenn von jeder Art mindestens eines erforderlich ist, verringert sich die Anzahl der Passwörter, die der Generator erzeugen kann, und somit die Entropie. Dieses Tool meldet den reduzierten Wert; Die meisten Generatoren melden den größeren.
  • Die Zeit zum Erraten geht von 100 Milliarden Schätzungen pro Sekunde aus, was einem Offline-Angriff mit handelsüblicher Grafikhardware gegen einen schnellen, ungesalzenen Hash entspricht. Ein mit bcrypt oder Argon2 gespeichertes Passwort ist um viele Größenordnungen langsamer angreifbar, und eine ratenbegrenzte Anmeldung ist wiederum langsamer.
  • Die angezeigte Zeit ist der Durchschnitt, nicht der schlimmste Fall – die Hälfte des Suchraums oder zwei hoch eins weniger als die Entropie.
  • Zwei Anführungszeichen, der Backtick und der Backslash, werden im Symbolsatz weggelassen, da sie kaputt gehen, wenn ein Passwort in einen Shell-Befehl oder eine JSON-Datei eingefügt wird. Das kostet etwa 0,06 Bit pro Zeichen.
  • Die Entropie sagt nichts über Wiederverwendung, Phishing oder einen Verstoß am anderen Ende aus. Ein perfektes Passwort, das an zwei Stellen verwendet wird, ist ein Passwort.

Fragen

Wird das Passwort irgendwohin gesendet oder gespeichert?

Nein. Es wird von Ihrem Browser generiert und existiert nur auf der Seite vor Ihnen. Es gibt keinen Server, an den es gesendet werden kann – die gesamte Site besteht aus statischen Dateien. Die Einstellungen wandern in der Adressleiste, sodass ein Link dieselben Optionen reproduziert, das Passwort selbst jedoch bewusst ausgelassen wird, sodass durch das Kopieren des Links das Rezept und nicht das Geheimnis weitergegeben wird.

Warum ist die Entropie hier geringer als auf anderen Passwortseiten?

Weil „mindestens eines von jeder Art“ aktiviert ist und diese Regel die Anzahl der Passwörter, die der Generator erzeugen kann, verringert. Bei 20 Zeichen wird etwa jede zehnte Zeichenfolge ausgeschlossen, was 0,15 Bit kostet. Die meisten Generatoren legen die Regel fest und geben dann den Wert für eine uneingeschränkte Ziehung an, der etwas zu hoch ist. Schalten Sie die Regel aus und die beiden Figuren stimmen überein.

Reichen acht Zeichen?

Nein. Acht Zeichen aus allen 90 ergeben 50,9 Bit, was etwa drei Stunden Raten bei 100 Milliarden Versuchen pro Sekunde entspricht. Zwölf Zeichen sind 77,4 Bit und bei gleicher Rate etwa 32.000 Jahre; sechzehn sind 103,6 Bit. Die Länge ist die einzige Einstellung, die die Antwort um Größenordnungen ändert.

Verwendet dies Math.random?

Niemals. Jedes Byte stammt von crypto.getRandomValues, dem kryptografischen Generator der Plattform. Math.random ist ein schneller, nicht kryptografischer Algorithmus mit einem kleinen internen Zustand, der aus einer Handvoll seiner eigenen Ausgaben wiederhergestellt werden kann, sodass ein daraus erstelltes Passwort von jedem reproduziert werden kann, der ein anderes sieht. In der Testdatei dieses Tools gibt es einen Test, der fehlschlägt, wenn Math.random jemals aufgerufen wird.

Sollte ich die Option „ähnliche Zeichen weglassen“ aktivieren?

Nur für ein Passwort muss eine Person es lesen und erneut eingeben – eine WLAN-Passphrase auf einem Router-Etikett, ein temporäres Passwort, das aus einer Telefonleitung gelesen wird. Es entfernt I, l, 1, die Pipe, 0 und O, wodurch das Alphabet von 90 auf 84 verkleinert wird und etwa 0,1 Bit pro Zeichen kostet. Für alles, was direkt in einen Passwort-Manager gelangt, ist es ein sinnloser Verlust.

Wie lang sollte ein Passwort eigentlich sein?

Lange genug, dass die Entropie für ein wichtiges Konto mehr als 80 Bit beträgt (in diesen Einstellungen 13 Zeichen) und für ein Hauptkennwort oder einen Verschlüsselungsschlüssel mehr als 128 Bit beträgt (20). Beide Schwellenwerte werden in der Testdatei dieses Tools festgelegt. Darüber hinaus ist das Passwort bei weitem nicht mehr der schwächste Teil des Systems.

Quellen

Methode verfasst und geprüft von Tessalor am 30.07.2026.