iToverDose/Software· 11 JUNI 2026 · 04:04

Passwortprüfung neu gedacht: 3 KB statt 389 KB mit gleicher Sicherheit

Eine neue Open-Source-Bibliothek reduziert die Dateigröße für Passwortstärke-Tests von 389 KB auf nur 3 KB – ohne Einbußen bei der Sicherheit. Wie funktioniert das und lohnt sich der Wechsel?

DEV Community4 min0 Kommentare

Passwort-Formulare gehören zu den kritischsten Elementen jeder Webanwendung. Doch während Entwicklerteams stundenlang an der Benutzerfreundlichkeit feilen, schleppen viele Projekte eine veraltete Bibliothek mit sich herum: zxcvbn. Mit 389 KB (komprimiert) und zuletzt aktualisiert im Jahr 2017 ist sie nicht nur riesig, sondern auch überholt. Die Folge? Langsame Ladezeiten, eine schlechtere Nutzererfahrung und unnötige Belastung der Leistungskennzahlen.

Doch jetzt gibt es eine Alternative: passcore. Diese Bibliothek erreicht die gleiche Erkennungsrate von 98,4 % bei realen Passwortlecks – und das mit gerade einmal 3 KB (komprimiert). Kein Kompromiss bei der Sicherheit, dafür ein erheblicher Gewinn an Performance. Besonders auf mobilen Geräten macht sich der Unterschied bemerkbar: Statt 9,7 ms für die Initialisierung benötigt passcore nur 0,2 ms. Für Nutzer bedeutet das: Kein Layout-Shift, keine verzögerte Rückmeldung und eine deutlich flüssigere Registrierung.

Warum zxcvbn zum Problem wird: Größe vs. Leistung

Die meisten Entwickler installieren zxcvbn, weil es als Standard für Passwortstärke-Tests gilt. Doch die Zahlen sprechen eine klare Sprache:

  • Dateigröße (gzipped): 389 KB (zxcvbn) vs. 3 KB (passcore)
  • Ladezeit (kalt): ~9,7 ms (zxcvbn) vs. ~0,2 ms (passcore)
  • Auswertungsdauer: ~77.578 ns/op (zxcvbn) vs. ~2.622 ns/op (passcore)
  • Letzte Aktualisierung: 2017 (zxcvbn) vs. aktiv gewartet (passcore)

Die Ironie: Viele der Passwörter, die zxcvbn blockieren soll, wie password123 oder qwertz, sind ohnehin in keinem realen Leak enthalten. Stattdessen wird eine riesige Wortliste (über 40.000 Einträge) geladen, die kaum relevanten Nutzen bringt. passcore setzt stattdessen auf eine zielgerichtet reduzierte Datenbank, die ausschließlich Passwörter aus echten Leaks berücksichtigt.

Wie passcore funktioniert: Fünf Schichten für maximale Sicherheit

Die Stärke von passcore liegt in seiner modularen Architektur. Jede Passwortprüfung durchläuft fünf aufeinander aufbauende Filter – ähnlich wie ein mehrstufiges Sicherheitssystem. Erst wenn alle Schichten keine Übereinstimmung finden, greift der Algorithmus auf Länge und Zeichenvielfalt zurück.

1. Wörterbuchprüfung: Nur was wirklich vorkommt

  • Die Datenbank enthält nur 329 Einträge – aber diese stammen direkt aus Leaks wie RockYou, Adobe oder Have I Been Pwned.
  • Nicht enthalten sind irrelevante Wörter wie "apple" oder "banana", sondern nur Passwörter, die tatsächlich in Angriffen verwendet wurden.
  • Beispiel: Password1! wird nicht als ganzes Wort erkannt, sondern durch einen Suffix-Stripper auf password reduziert und dann geprüft.

2. Tastaturmuster: Von qwerty bis numpad walks

  • Erfasst klassische Muster wie qwerty, asdf, 1234 oder diagonale Nummernfolgen.
  • Selbst komplexere Varianten wie 1qaz2wsx werden zuverlässig identifiziert.

3. Wiederholungen und Sequenzen: aaaa oder abcdef

  • Prüft auf sich wiederholende Zeichen (aaaa, ababab) oder aufsteigende/absteigende Sequenzen (123456, abcxyz).

4. Leetspeak-Dekodierung: p@ssw0rd wird zu password

  • Wandelt gebräuchliche Substitutionen wie p@ssw0rdpassword oder m0nk3ymonkey um.
  • Anschließend wird das Ergebnis gegen die Wörterbuchdatenbank geprüft.

5. Länge als entscheidender Faktor

  • Kurze Passwörter (unter 20 Zeichen) werden nach Zeichenvielfalt bewertet.
  • Mittlere Passwörter (20–30 Zeichen) erhalten automatisch eine höhere Bewertung.
  • Lange Passwörter (30+ Zeichen) erhalten die beste Note (4/4), selbst wenn sie nur aus Kleinbuchstaben bestehen.
  • Beispiel: correct-horse-battery-staple (25 Zeichen) wird trotz fehlender Sonderzeichen als sicher eingestuft.

Die Herausforderungen: Von Wortstämmen bis zu Leetspeak mit Trennzeichen

Bei der Entwicklung von passcore stießen die Macher auf mehrere Fallstricke, die in herkömmlichen Lösungen oft übersehen werden:

  • Wortstamm + Suffix: Passwörter wie Password1!, Admin123 oder Welcome123 enthalten einen bekannten Wörterbuch-Eintrag, der jedoch durch Zahlen oder Sonderzeichen modifiziert wurde. passcore löst dies durch eine matchCommonRoot-Funktion, die den Kern extrahiert und prüft.
  • Leetspeak mit Trennzeichen: Ein Passwort wie N0=Acc3ss wird nach direkter Dekodierung nicht erkannt. passcore spaltet die Zeichenkette an nicht-alphanumerischen Zeichen auf und prüft jeden Teil separat – access ist in der Datenbank enthalten und wird blockiert.
  • Fehlende kritische Wörter: Bei Tests mit realen Leaks zeigte sich, dass Begriffe wie admin, test, user oder login in vielen Passwörtern vorkommen, aber nicht in Standard-Wörterbüchern enthalten waren. Diese wurden nachträglich ergänzt.

Der Wechsel in der Praxis: So einfach ist der Umstieg

Die Integration von passcore in bestehende Projekte ist denkbar einfach und erfordert nur minimale Anpassungen:

// Vorher
import zxcvbn from 'zxcvbn';
const { score } = zxcvbn(password);

// Nachher
import { passcore } from 'passcorelib';
const { score } = passcore(password);

Einziger Unterschied: Die Rückgabe von result.feedback.warning wird zu result.warning vereinfacht.

Die Bilanz: Weniger Gewicht, gleiche Sicherheit

passcore ist kein Ersatz für zxcvbn – sondern eine optimierte Alternative für Projekte, bei denen Bundle-Größe und Performance entscheidend sind. Die Benchmarks belegen:

  • Gleiche Erkennungsrate: 98,4 % auf realen Leak-Daten.
  • Deutlich geringere Dateigröße: 130-mal kleiner als zxcvbn.
  • Schnellere Ausführung: 30-mal schneller als die etablierte Lösung.

Der Trade-off? Eine kleinere Wörterbuchdatenbank (329 vs. 40.000 Einträge). Doch diese Entscheidung ist bewusst: Die meisten Angriffe nutzen einfache Muster wie password123, Tastaturfolgen oder Leetspeak-Varianten bekannter Wörter. Diese erfasst passcore zuverlässig – und spart dabei unnötigen Ballast.

Fazit: Lohnt sich der Wechsel zu passcore?

Für die meisten Webanwendungen ist passcore eine überzeugende Wahl. Wer auf eine nachweislich sichere, aber extrem kleine und schnelle Bibliothek setzt, profitiert von:

  • Besseren Core Web Vitals durch geringere Ladezeiten.
  • Flüssigeren Nutzererfahrungen, besonders auf mobilen Geräten.
  • Aktiver Wartung statt veralteter Code-Basis.

Einzig für Projekte, die eine vollständige Abdeckung aller möglichen Passwörter benötigen (z. B. in Hochsicherheitsumgebungen), ist zxcvbn weiterhin die bessere Wahl. Doch für 99 % der Anwendungsfälle bietet passcore eine optimale Balance aus Sicherheit, Performance und Einfachheit.

Die Zukunft der Passwortprüfung könnte damit einfacher und effizienter werden – ohne Kompromisse bei der Sicherheit.

KI-Zusammenfassung

zxcvbn'in 389 KB'lik yükünü 3 KB'a düşüren Passcore, %98.4'lük tespit oranını koruyor. Parola analizi süresini 0.2 ms'ye indiren bu araçla web performansını optimize edin.

Kommentare

00
KOMMENTAR SCHREIBEN
ID #QIVDPV

0 / 1200 ZEICHEN

Menschen-Check

6 + 4 = ?

Erscheint nach redaktioneller Prüfung

Moderation · Spam-Schutz aktiv

Noch keine Kommentare. Sei der erste.