Wie Hash ich eine Zeichenfolge mit C#?
einen Blick hier nehmen: http://support.microsoft.com/kb/307020
Was die Felddeklaration MSSQL-Typ sein würde? nvarchar (64)?
Es ist Binärdaten. Vielleicht möchten Sie es als String formatieren, aber das ist "extra Arbeit"
Was ist Salzen und muss ich das irgendwo in meiner Datenbank speichern?
Sie sollten ein einzelnes Salz pro Eintrag verwenden. Das Salz ist da, um es unmöglich zu wissen, ob 2-mal das gleiche Passwort verwendet wurde. normalerweise wird eine Leiste aus 2 Komponenten aufgebaut ... Ein "geteiltes Geheimnis" (muss komplex sein, damit es Nachschlagelisten besiegen kann) und ein eindeutiger Teil (zum Beispiel ein ID-Wert des Benutzers in der Datenbank oder etwas anderes. machen ... Sie sicher, dass „shared“ + „Unique“ + Passwort ist einzigartig
Wenn ich die Absicht, Menschen Facebook Connect verwenden zu lassen, muss ich über das Erstellen eines Hash/Salz kümmern?
Wenn Sie kann eine API von Drittanbietern verwenden, dann müssen Sie sich nicht um Hashing-Salting kümmern.Solange Sie nicht die Passwörter speichern, gibt es keine Notwendigkeit zu Hash. Hashing ist eine Einweg-Funktion, so gibt es keine "gute" Art und Weise (Tipp : Rainbow-Tabellen), um das ursprüngliche Passwort zu rekonstruieren Wenn Sie Facebook die Authentifizierung überlassen haben, müssen Sie sich nicht um all diese grundlegenden Klempner kümmern, da Sie nicht s sind zerriss die Passwörter.
Hashing wird verwendet, wenn Sie einige Informationen so sicher haben möchten, dass sogar jemand, der Ihre DB stiehlt, nicht darauf zugreifen kann. BTW: Das schließt sich selbst ein ... Es gibt keine Möglichkeit, das ursprüngliche Passwort wiederherzustellen ...
Wenn Sie * Right Way (TM) wirklich wollen, dann könnten Sie auch iteriertes Hashing in Erwägung ziehen. Das bedeutet Sicherheit gegen CPU-Zeit, aber es ist extrem schwierig für einen Angreifer, ein einzelnes Passwort zu erzwingen. Ohne es ist es möglich, ein einzelnes Passwort in nur wenigen Stunden zu brechen (siehe http://stackoverflow.com/questions/2772014/is-sha-1-secure-for-password-storage). –
Sie waren enorm hilfreich. Danke für Ihre Hilfe. –
Guter Punkt über wiederholtes Hashing. In C# erfordert das Erzeugen eines Schlüssels mit PBKDF2 keinen Code mehr als das Erzeugen eines einfachen gesalzenen Hash. Siehe meine Antwort hier für Details: http://stackoverflow.com/questions/4329909/hashing-passwords-with-md5-or-sha-256-c/4330586#4330586 – LukeH