539 Stimmen

Bestes Verfahren zum Speichern von Passwörtern in der Datenbank

Ich arbeite an einem Projekt, bei dem eine Authentifizierung (Benutzername und Passwort) erforderlich ist.

Es stellt auch eine Verbindung zu einer Datenbank her, also dachte ich mir, dass ich den Benutzernamen und das Passwort dort speichern würde. Allerdings scheint es nicht so eine gute Idee zu haben, Passwörter als nur ein Textfeld in einer Tabelle sitzen auf der Datenbank.

Ich verwende C# und verbinde mich mit einem 2008 Express Server. Kann jemand vorschlagen (mit so vielen Beispielen wie möglich), was der beste Weg, um diese Art von Daten zu speichern sein würde?

P.S. Ich bin offen für die Idee, dass diese Informationen nicht in der Datenbank gespeichert werden, wenn ein guter Grund dafür angegeben werden kann.

6voto

Crippledsmurf Punkte 3942

Ich bin vielleicht etwas vom Thema abgekommen, da Sie die Notwendigkeit eines Benutzernamens und eines Passworts erwähnt haben, und mein Verständnis des Themas ist zugegebenermaßen nicht das beste, aber ist OpenID etwas, das man in Betracht ziehen sollte?

Wenn Sie OpenID verwenden, brauchen Sie überhaupt keine Anmeldedaten zu speichern, wenn ich die Technologie richtig verstehe, und die Benutzer können Anmeldedaten verwenden, die sie bereits haben, so dass Sie keine neue Identität erstellen müssen, die speziell für Ihre Anwendung ist.

Sie ist jedoch möglicherweise nicht geeignet, wenn die betreffende Anwendung nur für den internen Gebrauch bestimmt ist

RPX bietet eine einfache Möglichkeit, die OpenID-Unterstützung in eine Anwendung zu integrieren.

3voto

Ray Lu Punkte 25327

In Ihrem Szenario können Sie einen Blick auf asp.net-Mitgliedschaft haben, ist es gute Praxis, Benutzer-Passwort als Hash-Zeichenfolge in der Datenbank zu speichern. Sie können den Benutzer authentifizieren, indem Sie das gehashte eingehende Passwort mit dem in der Datenbank gespeicherten vergleichen.

Alles ist für diesen Zweck gebaut worden, siehe asp.net-Mitgliedschaft

1voto

waiwai933 Punkte 13482

Ich würde das Passwort mit MD5/SHA1 verschlüsseln, wenn Sie den Hash nicht umkehren können müssen. Wenn sich die Benutzer anmelden, können Sie einfach das angegebene Kennwort verschlüsseln und es mit dem Hash vergleichen. Hash-Kollisionen sind in diesem Fall nahezu unmöglich, es sei denn, jemand verschafft sich Zugang zur Datenbank und sieht einen Hash, für den es bereits eine Kollision gibt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X