MVC-3, wo das Kennwort des Benutzers verschlüsseln?
Habe ich mein eigenes Passwort-Verschlüsselung-dll, die ich benutze, um zu überprüfen das Kennwort des Benutzers, wenn Sie sich anmelden, dies ist auf die in meinem Benutzer-Entität.
Nun habe ich die Möglichkeit geschaffen, für einen Benutzer zu registrieren, die ist in Ordnung, außer die Passwörter sind doch verschlüsselt werden.
Meine Frage ist ganz einfach, wo sollte ich die Verschlüsselung von Passwort des neuen Benutzers? Ich bin mir nicht sicher, wie ich mir bewusst bin, dass das Passwort des Benutzers sollte nicht im Klartext übermittelt, daher weiß ich nicht, wo der beste Ort, um rufen Sie die Verschlüsselungs-Funktion:
- Entität "Benutzer" (wo die Verschlüsselungs-dll bereits für die Validierung verwendet).
- Benutzer-repository, wo die save-user-Methode ist.
- User-controller in denen die Erstellung von Ansichten gesteuert werden.
- Woanders, dass ich noch nicht betrachtet!
Vielen Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst alle, für die client - server-Kommunikation, dann würde ich dir empfehlen für die Verwendung von SSL für sensible Informationen (wie Passwörter), die nicht übertragen werden in nur-text-format.
Danach, es ist die gängige Praxis nicht, um Kennwörter zu speichern überall (sogar mit Verschlüsselung, aber die Hash-Werte von Ihnen.
Kann man die hash-Funktion auf die set-Methode des password-Eigenschaft. Hier ist ein Beispiel:
Edit:
Als Craig Stuntz darauf hingewiesen, dass der Hash-code in diesem Beispiel ist sehr einfach. Siehe den folgenden Beitrag für Sie ein sicherer Weg, um hash-Passwort: Hashing der Passwörter mit MD5 oder sha-256 C#
In einem service-layer Methode, die verantwortlich für das tun 2 Dinge:
Die controller-action wird natürlich sprechen, die service-Schicht.
Nicht machen Sie Ihre eigenen Passwort-hashing und denken Sie gar nicht über die Verschlüsselung von Passwörtern.
Die Mühe machen, diese sichere sind enorm. Verwenden Sie eine vorhandene Methode basiert auf den öffentlich verfügbaren Spezifikationen und algorithmen.