Wie wählen Sie ein Salz für eine hash-Funktion gedacht, um Passwörter schützen?

Ich bin eine (totale) Anfänger, und dies ist mein Erster Ausflug in die "Verschlüsselung" in der Tat ist dies wahrscheinlich das erste mal, dass ich das Wort.

Hier meine Frage: Für einen nicht-banking /Militär, oder auch kommerzielle, web-app, was ist der richtige Weg zu wählen, ein Salz für eine hash-Funktion für Passwörter verwendet?

Ich kann einfach erzeugen eines pseudo-zufälligen salt für jeden neuen Benutzer, und fügen Sie das Salz auf Ihrer pw vor dem anwenden der hash-Funktion. Aber ich muss noch speichern das Salz also vermutlich jeder, der erhält Zugriff auf die Hash-Passwörter bekommt auch die Salze.

Ist der Vorteil, das Salz einfach zu machen, das pw "eher zufällig", und daher die Niederlage der standard dictionary-basierte rainbow-Tabellen?

Würden alle der folgenden gut & praktische Ideen:

  1. Speichern das Salz in eine separate db - vielleicht ein separates system, auf jeden Fall einen anderen host, name, pw, etc.
  2. Generieren, das Salz auf der Basis der hash des Benutzernamen (oder ersten+letzten Namen oder Zeichen Datum), vermutlich mit einer anderen hash-Funktion? Dann das Salz selbst würde nicht gespeichert werden in der db nur die Daten verwendet, um zu berechnen, es würde...
  3. Speichern in der db ein Wert ist, der wird das gehashte pw und das Salz in eine nicht offensichtliche Art und Weise (z.B. das Salz 10 zufälligen Schlüssel, und Sie injiziert werden innerhalb der gehashte pw zwischen dem Buchstaben-zahlen 1&2, 4&5, 8&9, etc).

Als eine Seite Frage, wie einfach ist es zu ändern, ein salted hash-Algorithmus bei der Aktualisierung der software von der website? Es fühlt sich beklemmend jetzt.

  • Duplizieren: stackoverflow.com/questions/1191112/...
  • Danke. Nicht Adresse 1, 2, und 3 - oder bin ich etwas fehlt?
  • Es gibt eine MENGE von Informationen über diese bereits über. Kurz gesagt: per-user-Salze, verwenden Sie ZUFÄLLIGE Daten, die für die Salz und Mach dir keine sorgen über die "Sicherung" der Salze, wie Sie sind nicht geheim, Sie als solche.
  • Wenn Sie gerade eine GUID-id für den Benutzer in der Datenbank; dies kann als eine ausgezeichnete Quelle für die salt-bytes.
  • DanP - Exzellente, input, danke.
InformationsquelleAutor JDelage | 2010-09-23
Schreibe einen Kommentar