Kostenloses Entwickler-Tool

Bcrypt. Erzeugen, prüfen, verstehen.

Hashes mit frei wählbarem Cost-Faktor erstellen und bestehende Hashes prüfen – mit echter Laufzeitmessung auf deinem Gerät und dem Aufbau des Hashes Zeichen für Zeichen.

  • 100 % lokal mit bcryptjs
  • Kompatibel zu PHP password_hash()
  • Kein Speichern, kein Tracking

Erst ein starkes Passwort? Passwort-Generator

Wird nur auf deinem Gerät berechnet. Kein Netzwerk-Aufruf, nichts wird gespeichert.

Gemessen, nicht geraten

Jeder Schritt verdoppelt die Arbeit.

Die Balken zeigen die erwartete Laufzeit je Cost-Faktor – hochgerechnet aus deiner eigenen Messung auf diesem Gerät. Erzeuge oben einen Hash, dann füllt sich das Diagramm. Ein Angreifer mit vergleichbarer Hardware schafft entsprechend weniger Versuche pro Sekunde.

Noch keine Messung – erzeuge oben einen Hash.

// Hash erzeugen – Cost wie oben gewählt
$hash = password_hash($passwort, PASSWORD_BCRYPT, [
    'cost' => 12,
]);

// Beim Login prüfen
if (password_verify($eingabe, $hash)) {
    // angemeldet
}

Bcrypt Generator: Passwort-Hashes erstellen und prüfen auf Knopfdruck

Mit unserem kostenlosen Bcrypt Generator erstellen Sie in Sekunden sichere Bcrypt-Hashes mit frei wählbarem Cost-Faktor – und prüfen umgekehrt, ob ein Klartext zu einem vorhandenen Hash passt. Die gesamte Berechnung erfolgt mit der JavaScript-Bibliothek bcryptjs direkt in Ihrem Browser – vollständig lokal, ohne Datenübertragung an einen Server.

Ob Sie als Entwickler ein Test-Passwort für Ihre Datenbank-Seeds benötigen, einen Admin-Zugang zurücksetzen, eine .htpasswd-Datei pflegen oder einfach verstehen möchten, wie Passwort-Hashing funktioniert: Unser Bcrypt Generator liefert Ihnen per Klick standardkonforme Hashes, die mit PHP, Node.js, Python, Java und allen gängigen Bcrypt-Implementierungen kompatibel sind.

Was ist Bcrypt?

Bcrypt ist eine Passwort-Hash-Funktion, die 1999 von Niels Provos und David Mazières für das Betriebssystem OpenBSD entwickelt wurde. Sie basiert auf dem Blowfish-Verschlüsselungsalgorithmus und wurde gezielt für einen einzigen Zweck entworfen: Passwörter so zu speichern, dass sie selbst bei einem Datenbankleck nicht ohne enormen Aufwand rekonstruiert werden können.

Die zentrale Idee von Bcrypt ist der adaptive Cost-Faktor: Während Hardware über die Jahre immer schneller wird, lässt sich der Rechenaufwand von Bcrypt einfach mitskalieren. Ein höherer Cost-Faktor verdoppelt mit jedem Schritt die Anzahl der internen Runden – und damit die Zeit, die ein Angreifer für jeden einzelnen Rateversuch aufwenden muss. So bleibt Bcrypt auch über 25 Jahre nach seiner Veröffentlichung ein verlässlicher Standard.

Warum Bcrypt statt MD5 oder SHA-256?

Allzweck-Hashfunktionen wie MD5 oder SHA-256 wurden für Geschwindigkeit entworfen – genau das macht sie für Passwörter ungeeignet. Eine moderne Grafikkarte berechnet zig Milliarden MD5-Hashes pro Sekunde und probiert damit ganze Wörterbücher in Sekundenbruchteilen durch. Bcrypt hingegen ist absichtlich langsam und reduziert die Rate eines Angreifers auf wenige tausend Versuche pro Sekunde – ein Unterschied von mehreren Größenordnungen.

Dazu kommen zwei weitere entscheidende Vorteile:

  • Integrierter Salt: Bcrypt generiert für jeden Hash automatisch einen zufälligen Salt und speichert ihn im Hash mit. Rainbow-Table-Angriffe mit vorberechneten Hashes laufen dadurch ins Leere – und identische Passwörter erzeugen unterschiedliche Hashes.
  • GPU-Resistenz: Der speicherintensive interne Aufbau von Bcrypt lässt sich auf Grafikkarten deutlich schlechter parallelisieren als simple Hashfunktionen wie MD5 oder SHA.
  • Zukunftssicherheit: Steigt die Rechenleistung, erhöhen Sie einfach den Cost-Faktor – ohne den Algorithmus wechseln zu müssen.

Aufbau eines Bcrypt-Hashes

Ein Bcrypt-Hash ist immer exakt 60 Zeichen lang und folgt einem festen Schema, zum Beispiel $2b$12$R9h/cIPz0gi.URNNX3kh2OPST9/PgBkqquzi.Ss7KIUgO2t0jWMUW:

  • $2b$ – Algorithmus-Version: Kennzeichnet die Bcrypt-Revision. $2a$ ist die ursprüngliche Variante, $2y$ die PHP-Revision nach einem Bugfix 2011, $2b$ die aktuelle OpenBSD-Revision. Alle sind in der Praxis kompatibel.
  • 12$ – Cost-Faktor: Die Anzahl der Runden als Zweierpotenz: 212 = 4.096 Iterationen.
  • Salt – die nächsten 22 Zeichen: Der zufällig generierte Salt in Bcrypt-Base64-Kodierung.
  • Hash – die letzten 31 Zeichen: Der eigentliche Hashwert aus Passwort, Salt und Cost-Faktor.

Weil Salt und Cost-Faktor im Hash enthalten sind, braucht eine Anwendung zum Prüfen eines Passworts keine zusätzlichen Informationen – der Hash ist vollständig selbstbeschreibend.

Der Cost-Faktor: Sicherheit vs. Performance

Der Cost-Faktor (auch Work Factor oder Rounds genannt) bestimmt, wie rechenintensiv das Hashing ist: Bei Cost 12 durchläuft Bcrypt 212 = 4.096 interne Runden, bei Cost 13 sind es bereits 8.192. Jeder Schritt verdoppelt also die Rechenzeit – für Sie wie für jeden Angreifer.

Als Faustregel für den Produktiveinsatz gilt: Wählen Sie den höchsten Cost-Faktor, bei dem ein Hash auf Ihrer Server-Hardware noch in etwa 100 bis 500 Millisekunden berechnet wird. Für aktuelle Hardware bedeutet das Cost 12 als empfohlenes Minimum; sicherheitskritische Systeme verwenden 13 oder 14. Werte unter 10 gelten heute als unzureichend. Mit unserem Bcrypt Generator können Sie verschiedene Cost-Faktoren direkt ausprobieren und die Rechenzeit live in Ihrem Browser beobachten.

Bcrypt in der Praxis: Code-Beispiele

Die mit unserem Generator erstellten Hashes sind vollständig kompatibel mit allen verbreiteten Bcrypt-Implementierungen. So nutzen Sie Bcrypt in Ihrer eigenen Anwendung:

PHP

// Hash erstellen (Bcrypt ist der Standard-Algorithmus)
$hash = password_hash($passwort, PASSWORD_BCRYPT, ['cost' => 12]);

// Passwort prüfen
if (password_verify($passwort, $hash)) {
    // Login erfolgreich
}

// Prüfen, ob der Hash ein Upgrade braucht (z.B. höherer Cost-Faktor)
if (password_needs_rehash($hash, PASSWORD_BCRYPT, ['cost' => 12])) {
    $hash = password_hash($passwort, PASSWORD_BCRYPT, ['cost' => 12]);
}

Node.js (bcryptjs)

import bcrypt from 'bcryptjs';

// Hash erstellen
const hash = await bcrypt.hash(passwort, 12);

// Passwort prüfen
const istKorrekt = await bcrypt.compare(passwort, hash);

Python (bcrypt)

import bcrypt

# Hash erstellen
hash = bcrypt.hashpw(passwort.encode(), bcrypt.gensalt(rounds=12))

# Passwort prüfen
ist_korrekt = bcrypt.checkpw(passwort.encode(), hash)

Niemals Klartext speichern

Speichern Sie Passwörter ausschließlich als Hash in der Datenbank. Selbst bei einem Datenleck bleiben die eigentlichen Passwörter Ihrer Nutzer so geschützt.

Cost-Faktor regelmäßig erhöhen

Hardware wird schneller – prüfen Sie beim Login mit password_needs_rehash(), ob der Hash noch dem aktuellen Cost-Faktor entspricht, und rehashen Sie bei Bedarf.

72-Byte-Limit beachten

Bcrypt verarbeitet nur die ersten 72 Bytes. Bei sehr langen Passphrasen oder Mehrbyte-Zeichen (Umlaute, Emojis) sollten Sie das Limit im Blick behalten.

Pepper als Ergänzung

Ein serverseitiger, geheimer Zusatzwert (Pepper) außerhalb der Datenbank erhöht die Sicherheit zusätzlich – etwa über HMAC vor dem Bcrypt-Hashing.

Typische Anwendungsfälle für den Bcrypt Generator

  • Entwicklung & Testing: Test-Hashes für Datenbank-Seeds, Fixtures und automatisierte Tests erzeugen
  • Admin-Zugänge: Passwort-Hash für einen neuen Benutzer direkt per SQL in die Datenbank einfügen
  • Debugging: Prüfen, ob ein gespeicherter Hash wirklich zum erwarteten Passwort passt
  • Migration: Hashes beim Umstieg von MD5/SHA auf Bcrypt vorab validieren
  • Lernen & Verstehen: Den Aufbau von Bcrypt-Hashes und die Wirkung des Cost-Faktors live nachvollziehen

Bcrypt-Hashes erstellen in drei Schritten

  • Eingeben: Tragen Sie das Passwort oder den Text ein, den Sie hashen möchten – die Byte-Anzeige warnt Sie beim 72-Byte-Limit.
  • Cost wählen: Stellen Sie den Cost-Faktor ein – wir empfehlen 12 oder höher für den Produktiveinsatz.
  • Generieren & prüfen: Erstellen Sie den Hash per Klick, kopieren Sie ihn in die Zwischenablage und verifizieren Sie ihn bei Bedarf direkt im Prüf-Bereich.

Bcrypt vs. Argon2

Die beiden wichtigsten Verfahren für Passwort-Hashing im Vergleich:

BcryptArgon2id
Seit19992015
SpeicherhartNeinJa
GPU-resistentTeilweiseJa
PHP-SupportStandardOptional*
VerbreitungSehr hochWachsend

* benötigt PHP mit Argon2-Unterstützung (--with-password-argon2). Für neue Projekte empfiehlt OWASP Argon2id – Bcrypt bleibt mit Cost 12+ eine solide, bewährte Wahl.

FAQ

Häufige Fragen

Passwort fehlt noch? Passwort-Generator

Was ist ein Bcrypt-Hash?

Bcrypt ist eine Passwort-Hash-Funktion, die 1999 von Niels Provos und David Mazières auf Basis des Blowfish-Verschlüsselungsalgorithmus entwickelt wurde. Sie wandelt ein Passwort in eine 60 Zeichen lange, nicht umkehrbare Zeichenkette um. Das Besondere: Bcrypt ist absichtlich rechenintensiv und enthält einen automatisch generierten Salt – das macht es ideal für die sichere Speicherung von Passwörtern in Datenbanken.

Wird mein Passwort an einen Server gesendet?

Nein. Sowohl das Erstellen als auch das Prüfen der Bcrypt-Hashes erfolgt vollständig lokal in Ihrem Browser mit der JavaScript-Bibliothek bcryptjs. Ihre Eingaben verlassen zu keinem Zeitpunkt Ihr Gerät und werden weder übertragen noch gespeichert. Sie können das im Netzwerk-Tab Ihrer Browser-Entwicklertools selbst überprüfen.

Welchen Cost-Faktor sollte ich wählen?

Für den Produktiveinsatz gilt ein Cost-Faktor von 12 als empfohlenes Minimum. Jeder Schritt verdoppelt den Rechenaufwand: Cost 13 dauert doppelt so lange wie Cost 12. Wählen Sie den höchsten Wert, der auf Ihrer Server-Hardware noch eine akzeptable Antwortzeit liefert (Faustregel: 100 bis 500 Millisekunden pro Hash). Werte unter 10 sollten heute nicht mehr verwendet werden.

Kann man einen Bcrypt-Hash entschlüsseln?

Nein. Bcrypt ist eine Einweg-Funktion (One-Way-Hash) – es gibt keinen mathematischen Weg, aus dem Hash das ursprüngliche Passwort zurückzurechnen. Die einzige Möglichkeit ist das Durchprobieren von Kandidaten (Brute-Force oder Wörterbuch-Angriff), was durch den hohen Rechenaufwand von Bcrypt extrem verlangsamt wird. Genau deshalb wird Bcrypt für die Passwortspeicherung eingesetzt.

Warum erzeugt derselbe Text jedes Mal einen anderen Hash?

Bcrypt generiert bei jedem Hashing-Vorgang einen neuen, zufälligen Salt, der in den Hash eingerechnet und im Ergebnis mitgespeichert wird. Dadurch entstehen für dasselbe Passwort immer unterschiedliche Hashes. Das ist gewollt: Salts verhindern Rainbow-Table-Angriffe und verschleiern, wenn mehrere Nutzer dasselbe Passwort verwenden. Die Prüfung funktioniert trotzdem, weil der Salt aus dem gespeicherten Hash ausgelesen wird.

Was bedeuten $2a$, $2b$ und $2y$?

Das Präfix kennzeichnet die Bcrypt-Version: $2a$ ist die ursprüngliche Revision, $2y$ wurde von PHP nach einem Bugfix 2011 eingeführt und $2b$ ist die aktuelle Revision von OpenBSD (seit 2014). Alle drei Varianten sind in der Praxis kompatibel – moderne Implementierungen wie PHP password_verify() oder bcryptjs können Hashes aller Revisionen prüfen. Unser Generator erzeugt aktuelle $2b$-Hashes.

Was ist das 72-Byte-Limit bei Bcrypt?

Bcrypt verarbeitet konstruktionsbedingt nur die ersten 72 Bytes der Eingabe – alles darüber hinaus wird stillschweigend ignoriert. Bei Passwörtern ist das selten ein Problem, bei langen Passphrasen oder API-Keys aber relevant. Beachten Sie: Umlaute und Sonderzeichen belegen in UTF-8 mehrere Bytes. Unser Generator zeigt Ihnen die Byte-Länge Ihrer Eingabe an und warnt, wenn das Limit überschritten wird.

Ist Bcrypt heute noch sicher?

Ja. Bcrypt gilt auch über 25 Jahre nach seiner Veröffentlichung als sicher und wird von OWASP weiterhin für die Passwortspeicherung empfohlen, sofern der Cost-Faktor mindestens 10 beträgt. Neuere Alternativen wie Argon2 (Gewinner der Password Hashing Competition 2015) oder scrypt bieten zusätzlich Schutz durch hohen Speicherbedarf. Für bestehende Systeme ist Bcrypt mit angemessenem Cost-Faktor aber nach wie vor eine solide Wahl.

Du baust sichere Systeme?

622 offene IT-Security-Stellen auf Jobriver – Teams, die genau das suchen.