Das modulare crypt-Format für bcrypt besteht aus
$2$
,$2a$
oder$2y$
Identifizieren des Hashing-Algorithmus und -Formats- ein zweistelliger Wert, der den Kostenparameter angibt, gefolgt von
$
- ein 53 Zeichen langer Base-64-codierter Wert (sie verwenden das Alphabet
.
,/
,0
–9
,A
–Z
,a
–z
das unterscheidet sich von der Standard-Base-64-Kodierung Alphabet) bestehend aus:- 22 Salt-Zeichen (effektiv nur 128 Bits der 132 dekodierten Bits)
- 31 Zeichen der verschlüsselten Ausgabe (effektiv nur 184 Bits der 186 dekodierten Bits)
Die Gesamtlänge beträgt also 59 bzw. 60 Byte.
Da Sie das 2a-Format verwenden, benötigen Sie 60 Bytes. Und daher empfehle ich für MySQL, den <-Code zu verwenden>CHAR(60) BINARY oder BINARY(60)
(siehe Die _bin und binär Sammlungen
für Informationen über den Unterschied).
CHAR
ist nicht binärsicher und die Gleichheit hängt nicht nur vom Bytewert ab, sondern von der tatsächlichen Sortierung; im schlimmsten Fall A
wird wie a
behandelt . Siehe Der _bin
und binär
Sammlungen
für weitere Informationen.