Wie? Verschlüsseln und Entschlüsseln von Benutzer Mitgliedschaft Passwörter in ASP.NET
Erstellen wir eine neue Website mit ASP.NET Mitgliedschaftsanbieter für die Benutzer-Registrierung und log-in. Unserem alten system die verschlüsselten Benutzerkennwörter, so dass wir uns erholen konnten, wenn wir es benötigten.
Ich bin mit sehr viel Mühe, herauszufinden, ob es möglich ist, zu verwenden ASP.NET Mitgliedschaft Funktionen, um einfach das Kennwort verschlüsseln, wenn der Benutzer registriert und dann entschlüsseln, damit ich es sehen kann.
Dokumentation dieser Stadtteil ist nicht existent.
Ich weiß, wie Web konfigurieren.config, um es zu speichern Passwörter als verschlüsselte ala
passwordFormat="Encrypted" in den Anbieter und die Zuweisung eines validationKey in der machineKey, aber es scheint, wie das Passwort bekommt noch Hash (obwohl vielleicht ist es einfach auch verschlüsselt). So oder so kann ich nicht decifer, wie das Passwort wiederhergestellt werden können (durch uns), wenn nötig.
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Speicherung der Passwörter in der erzielbaren-format ist eine sehr schlechte Idee. Wenn Sie wiederhergestellt werden können, so kann jeder, der bricht in deinen server ein.
Du bist besser dran mit einem standard-hash+salt Ansatz und mit einem Passwort-reset-Mechanismus, um den Fall behandeln, wo der Benutzer vergessen, Ihre Kennwort ein.
Müssen Sie passwordFormat="Encrypted" eher als passwordFormat="Hashed". Dann können Sie die DecryptPassword Methode der MembershipProvider entschlüsseln das Passwort, wenn nötig.
Ich nehme an, Sie sind mit dem SQLMembershipProvider, dass MS versorgt. Wenn ja, dann warum nicht verwenden Sie das integrierte Frage-und Antwort-Funktionen, um dem Benutzer erlauben, Ihr Passwort zu ändern. Alternativ (oder zusätzlich) sein Passwort zurücksetzen und Ihnen per E-Mail die neuen man zu Ihnen. Auf diese Weise kann die app nicht über eine Benutzer-Passwort, um niemanden versehentlich.
Wenn Sie wirklich brauchen, um zu entschlüsseln, Ihre Kennwörter dann die passwordFormat muss festgelegt werden "Verschlüsselt". Sehen DecryptPassword für Informationen zur Entschlüsselung das Passwort. Für details über die Konfiguration der für die Entschlüsselung sehen, die PasswordFormat, beachten Sie, dass es sagt, Sie müssen angeben, dass die decryptionKey-Attribut der machineKey-element.