Welchen Datentyp und welche Länge soll das Hash-Passwortfeld haben?
Ich bin mir nicht sicher, wie Passwort-Hashing funktioniert (ich werde es später implementieren), aber ich muss jetzt ein Datenbankschema erstellen.
I'm Denken der Begrenzung von Passwörtern auf 4-20 Zeichen, aber wie ich verstehe, nach der Verschlüsselung Hash-String wird von unterschiedlicher Länge sein.
Also, wie diese Passwörter in der Datenbank zu speichern?
258
3
Vielleicht finden Sie diesen Wikipedia-Artikel über Salting sinnvoll. Die Idee ist, ein bestimmtes Bit an Daten hinzuzufügen, um den Hash-Wert zu randomisieren; dies schützt Ihre Kennwörter vor Wörterbuchangriffen, falls jemand unbefugten Zugriff auf die Kennwort-Hashes erhält.
Als Zeichenkette fester Länge (VARCHAR(n) oder wie immer MySQL sie nennt). Ein Hash hat immer eine feste Länge von z.B. 12 Zeichen (je nach dem verwendeten Hash-Algorithmus). Ein 20-Zeichen-Kennwort würde also auf einen 12-Zeichen-Hash reduziert werden, und ein 4-Zeichen-Kennwort würde ebenfalls einen 12-Zeichen-Hash ergeben.
Ich habe immer getestet, um die MAX-Zeichenlänge einer verschlüsselten Zeichenfolge zu ermitteln und diese als Zeichenlänge eines VARCHAR-Typs festzulegen. Je nachdem, wie viele Datensätze Sie haben werden, könnte dies der Datenbankgröße wirklich helfen.