JavaScriptsSchutz

Passwort-Stärke prüfen

Schätzt, wie lange ein Passwort einem Rateangriff standhält — gerechnet wird im Browser, das Passwort verlässt die Seite nicht.

Ein Passwort ist genau so gut wie die Anzahl der Möglichkeiten, die ein Angreifer durchprobieren müsste. Dieses Script rechnet euch diese Zahl aus: Es schaut, aus welchen Zeichengruppen euer Passwort besteht, wie lang es ist, und leitet daraus die sogenannte Entropie ab — ein Maß für die Unvorhersehbarkeit, angegeben in Bit. Daraus wiederum ergibt sich eine Schätzung, wie lange ein schneller Rateangriff bräuchte.

Tippt einfach in das Feld; die Bewertung aktualisiert sich bei jedem Zeichen. Ihr braucht keinen Knopf zu drücken und müsst nichts absenden. Das ist der wichtigste Punkt überhaupt: Die Rechnung läuft vollständig in eurem Browser, es wird nichts übertragen, nichts gespeichert und nichts protokolliert. Trotzdem gilt die alte Regel — tippt niemals ein Passwort, das ihr wirklich benutzt, in ein Formular auf einer fremden Seite. Probiert lieber ein ähnlich gebautes aus.

Die Faustregel hinter der Bewertung: Jedes zusätzliche Zeichen multipliziert die Möglichkeiten, jede zusätzliche Zeichengruppe vergrößert nur den Faktor pro Zeichen. Deshalb bringt Länge fast immer mehr als Sonderzeichen — „Kaffeetasse-Ziegelstein-Wolke" ist deutlich stärker als „P4ssw!". Zusätzlich prüft das Script auf ein paar Allerweltswörter wie „passwort" oder „123456": Wer die verwendet, bekommt keine gute Note, egal wie lang der Rest ist, denn Angreifer probieren Wortlisten zuerst durch.

Wenn ihr ein neues Passwort braucht, statt ein altes zu bewerten: Wir haben einen Passwortgenerator und einen Passsatz-Generator im Archiv, der ganze Wortketten würfelt. Für kurze Zahlencodes gibt es den PIN-Generator.

Schutz Baujahr 2026 läuft in deinem Browser

Die Bewertung entsteht in eurem Browser. Es wird nichts übertragen und nichts gespeichert.

Script von kostenlose-javascripts.de

So funktioniert das Script

Das Script besteht aus vier Teilen: Es bestimmt den Zeichenvorrat, rechnet daraus die Entropie, sucht nach bekannten Wörtern und übersetzt die Rechenzeit in eine lesbare Angabe. Der Auslöser ist kein Knopf, sondern das input-Ereignis des Eingabefeldes — es feuert bei jedem getippten Zeichen.

const gruppen = [
  { name: "Kleinbuchstaben", muster: /[a-zäöüß]/, umfang: 29 },
  { name: "Ziffern", muster: /[0-9]/, umfang: 10 },
  …
];

Jede Zeichengruppe steht als Objekt in einem Array: ein Anzeigename, ein regulärer Ausdruck zum Erkennen und der Umfang der Gruppe. Ein regulärer Ausdruck (zwischen Schrägstrichen geschrieben) ist ein Suchmuster; /[0-9]/ bedeutet „irgendeine Ziffer". Die 29 bei den Kleinbuchstaben sind die 26 lateinischen plus ä, ö, ü und ß.

gruppen.forEach(function (gruppe) {
  if (gruppe.muster.test(text)) {
    umfang += gruppe.umfang;
    namen.push(gruppe.name);
  }
});

Für jede Gruppe prüft test(), ob mindestens ein Zeichen dieser Art im Passwort vorkommt. Wenn ja, wird ihr Umfang aufaddiert. Ein Passwort aus Klein- und Großbuchstaben plus Ziffern hat so einen Vorrat von 29 + 29 + 10 = 68 möglichen Zeichen je Stelle.

const bits = text.length * Math.log2(vorrat.umfang);

Das ist der Kern. Bei einem Vorrat von 68 Zeichen und 10 Stellen gibt es 6810 Möglichkeiten — eine unhandlich große Zahl. Der Logarithmus zur Basis 2 macht daraus eine handliche: Math.log2(68) ist rund 6,09, mal 10 Stellen ergibt etwa 61 Bit. „61 Bit" heißt: so viele Möglichkeiten wie bei 61 Münzwürfen, also 261. Der Vorteil dieser Schreibweise ist, dass jedes zusätzliche Bit eine Verdopplung bedeutet.

const sekunden = Math.pow(2, bits - 1) / 10000000000;

Aus den Bit wird die Rechenzeit: 2bits ist die Zahl der Möglichkeiten, bits - 1 halbiert sie, weil ein Angreifer im Durchschnitt nur die Hälfte durchprobieren muss, bis er trifft. Geteilt wird durch 10 Milliarden — eine gängige Größenordnung für Rateversuche pro Sekunde auf guter Hardware.

if (klein.indexOf(wortliste[i]) !== -1) {
  note = "sehr schwach";
  …
}

Die reine Rechnung setzt voraus, dass das Passwort zufällig ist. „Passwort2024" hat rechnerisch 12 Stellen, steht aber in jeder Angriffsliste. Deshalb überschreibt der Wortlisten-Test die Note: indexOf liefert die Fundstelle eines Teilstrings oder -1, wenn nichts gefunden wurde.

Zum Anpassen: Die Schwellen in stufen bestimmen, ab wie viel Bit welche Note vergeben wird — wer strenger sein will, setzt sie hoch. In wortliste könnt ihr beliebig viele eigene Begriffe ergänzen, etwa den Namen eures Vereins oder eurer Firma, die in Passwörtern erfahrungsgemäß gern auftauchen.

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.

Mehr aus der Kategorie Schutz