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–zdas 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.