Wie kann man einen Passwortwert mit c # salzen und hashen?
Hai Jungs,
Kam ich zu wissen, dass die Speicherung von hash-Wert eines Passworts ist sicher von Bevorzugte Methode der Speicherung der Passwörter In der Datenbank...
- Wie Salz und ein Kennwort hash-Wert mit c#?
- Wie vergleichen der gespeicherten Werte in DB und dem vom Benutzer?
InformationsquelleAutor der Frage Chendur Pandian | 2010-01-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der beliebteste Weg, dies zu tun ist die Verwendung eines hashing-Algorithmus. Es gibt eine ausgezeichnete blog-Beitrag hier über die Verwendung des MD5-Algorithmus ein hash-string, aber es gibt viele andere Beispiele in der
System.Cryptography
namespace.Als bei #2, der Allgemeine Schritt-für-Schritt-Anleitung, wie das funktionieren würde wäre das folgende:
Auf Anmeldung:
Auf login /user & password check:
Es ist alles relativ langatmig, aber es ist sehr sicher.
Gibt es ein anderes extrem in-depth guide auf hashing und Salzen hier.
InformationsquelleAutor der Antwort Daniel May
Einfache hash:
InformationsquelleAutor der Antwort magnus
Streng genommen, sollten Sie Salz das Passwort dann Hashen, um zu vermeiden, ein Wörterbuch-Angriff. Sie können jede der Implementierungen der
HashAlgorithm
abstrakte Klasse, in derSystem.Cryptography
- namespace um den hash zu berechnen - die aktuell beste Wahl wäre wohl einer der SHA-2-algorithmen.Speichern Sie den hash, nicht das Passwort, und vergleichen Sie die hash-Werte, um den Benutzer zu authentifizieren.
InformationsquelleAutor der Antwort David M
Wie die anderen schon sagten, es gibt viele Optionen.
Hier finden Sie einige Beispiel-code (MD5 anstelle von SHA) aus Microsoftdie helfen könnten, bekommen Sie loslegen
InformationsquelleAutor der Antwort µBio
Hashing-Sie haben mehrere algorithmen unterstützt in-System.Sicherheit.Kryptographie, die für Ihren Anwendungsfall möchten Sie wahrscheinlich wählen Sie einen SHA hash-basierte oder etwas ähnliches.
Zum Vergleich: Sie vergleichen Sie nicht den DB-Wert und dem vom Benutzer gab Sie. Verwenden Sie die gleiche Verschlüsselung/Hash-Funktion, die Sie verwendet, um zu speichern das Passwort in der DB in den ersten Platz, diesmal mit der Benutzereingabe. Wenn das Ergebnis gleich dem hash in der DB das Passwort war (wahrscheinlich) richtig.
Die Absicht ist, dass niemand, hat Zugriff auf die DB abrufen können, die Passwörter im Klartext und auch nicht Ihr Programm muss es wissen (nur der Teil, der akzeptiert die Eingabe des Benutzers, wird es für eine kurze Zeit).
- Links (vielleicht sogar Duplikate):
InformationsquelleAutor der Antwort Benjamin Podszun
System.Sicherheit.Die Kryptographie.MD5
InformationsquelleAutor der Antwort Christian V