bcrypt 72-Byte-Grenze testen
bcrypt ist ein Verfahren zum Hashen von Passwörtern und verarbeitet nur die ersten 72 Bytes der Eingabe. Die Beispiele liegen genau an dieser Grenze, darunter Werte mit Mehrbyte-Zeichen und ein NUL-Byte. Damit lässt sich prüfen, ob eigene Systeme zu lange Passwörter ablehnen, abschneiden oder vorher mit einem anderen Verfahren behandeln.
6 Varianten auf einer Seite, jede mit eigenem Kopier- oder Download-Knopf.
bcrypt-Grenze: 72 × A (genau 72 Bytes)
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
bcrypt verarbeitet nur die ersten 72 Bytes (OWASP Password Storage Cheat Sheet). Dieser Wert nutzt das Limit voll aus.
bcrypt-Grenze: 72 × A plus x (73 Bytes)
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAx
Unterscheidet sich vom Wert „72 × A plus y“ erst nach Byte 72, bcrypt liefert für beide denselben Hash.
bcrypt-Grenze: 72 × A plus y (73 Bytes)
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy
Zweiter Wert zum Vergleich: gleiche ersten 72 Bytes wie „72 × A plus x“.
bcrypt-Grenze: 71 × A plus ä (73 Bytes, 72 Zeichen)
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAä
72 Zeichen, aber 73 Bytes in UTF-8: das ä wird mittendrin abgeschnitten.
bcrypt-Grenze: 70 × A plus Emoji (74 Bytes)
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA😀
71 Zeichen, 74 Bytes: das Emoji liegt über Byte 72.
bcrypt-Grenze: NUL-Byte nach 3 Zeichen
abc dahinter-wird-ignoriert
Viele bcrypt-Implementierungen enden am ersten NUL-Byte. Testzeichenfolge für eigene Systeme.