Frage

Können Benutzer verlangen, dass ihr Passwort selbst per E-Mail, wenn das Passwort als Hash-Wert gespeichert wird?

Gibt es eine Möglichkeit, einen Hash-Wert den klaren Textwert mit den richtigen Informationen (und welche Informationen würden Sie brauchen) zu konvertieren?

Wenn ein Benutzer das gleiche Passwort-Hash-Wert an zwei Standorten gespeichert hat, würde ihr Passwort das gleiche für beide Standorte sein?

War es hilfreich?

Lösung

Wenn Sie nur einen Hash des Passworts speichern, dann nicht. ... und Sie sollten nur eine richtig-gesalzene Hash ihres Passworts werden die Speicherung, sowieso.

Passwort-Reset-Mechanismen sind die richtige Alternative.

Andere Tipps

Hash-Passwörter können in der Regel nicht abgerufen werden (dies hängt von der Hash-Funktion, sichere Hash-Werte können nicht abgerufen werden). Wenn sie den gleichen Hash auf zwei Seiten haben, sie das gleiche Passwort haben könnten, hängt dies von dem Hash-Salz von den Standorten verwendet, welche Methode etc.

Wenn Sie Ihr Passwort sicher in einem guten Hashing-System gespeichert ist, ein Anbieter sollte nie in der Lage sein, Ihnen Ihr Passwort per E-Mail, müssen Sie Ihr Passwort zurücksetzen, wenn Sie es vergessen haben.

Kurz gesagt, nein. Bei den meisten Hash-Algorithmen können Sie mehrere Eingänge mit dem gleichen Ausgang. Oft ist es besser, eine Passwort-Reset-Option anbieten zu können.

Es gibt verschiedene Arten von Hash-Algorithmen. Einige sind sicherer als andere. MD5 ist ein beliebter, aber unsicher ein. Die SHA-Familie ist ein weiterer sicherer Satz von Algorithmen.

Per Definition ein Hash ist eine Einweg-Funktion. Es kann nicht rückgängig gemacht werden.

http://en.wikipedia.org/wiki/Sha-1

Wenn es eine einfache Art und Weise war es, die Klartext-Passwort wiederherzustellen, gäbe es keinen Sinn, die Passwörter in Hashing zu beginnen. An diesem Punkt könnte man genauso gut nur base64 oder ROT13 sie. (Tu das nicht!)

Wie andere erwähnt, verwenden andere Wiederherstellungsmethoden Passwort. Es gibt wirklich nie einen guten Grund, den Zugriff auf Passwörter im Klartext zu haben.

Wenn der Hash an zwei Standorten das gleiche ist, hat der Benutzer höchstwahrscheinlich das gleiche Passwort bei beide. Nicht 100% jedoch garantiert, könnte es eine Hash-Kollision sein, aber das ist äußerst unwahrscheinlich.

Es gibt keine Möglichkeit, die häufig verwendeten Hash-Werte zu umkehren. Sie können bruteforced werden (jede einzelne mögliche Passwort versuchen) oder Sie können eine Wortliste (mit einer Liste der am häufigsten verwendeten Passwörter) in Kombination zu brutaler Gewalt, um es zu beschleunigen einige, aber es ist immer noch ein sehr langsamer und CPU intensiver Prozess.

Die beste Art und Weise, die viele Websites verwenden, ist es ein „Password Reset“ -Taste zu erstellen, in dem Sie Ihren Benutzernamen und E-Mail eingeben, und wenn sie übereinstimmen, sendet es Ihnen ein zufälliges Passwort und gibt Ihnen einen Link zur Anmeldeseite und Sie können mit Ihrem zufälligen Passwort anmelden und Ihr Passwort ändern.

Um dies zu tun, müssen Sie ein Modell mit den Feldern haben:

Hashed_password
Salt

Und müssen Sie die Methode Benutzer das Passwort kennen Hash (hier verwende ich SHA1) Dann können Sie in Ihrem Controller definieren:

def self.encrypted_password(password, salt)
   string_to_hash = password + "wibble" + salt
   Digest::SHA1.hexdigest(string_to_hash)
end

Als nächstes können Sie vergleichen:

user.Hashed_password == encrypted_password(password, user.salt)

True bedeutet, dass "Passwort" ist das Passwort für den Benutzer "user"

Die allgemeine Idee, einen Hash eines Passwortes hinter Speicherung ist die Passwörter sicher sind ... auch von denen, die den Zugriff auf die Datenbank haben, um sicherzustellen. Vertrauen ist niemals implizit. Ein Hash ist ein Einweg-Algorithmus, so gibt es keine Möglichkeit, das Original-Passwort von einem Hash-Code abzuleiten. Normalerweise, wenn ein Benutzer muss sein Passwort wiederherstellen, die als Hash gespeichert wurde, sollten Sie sie ihre geheime Frage stellen, und entweder per e-Mail ihre temporäres Passwort, oder per e-Mail einen temporären Link, wo sie ihr Passwort ändern können. Dadurch wird sichergestellt, dass das Passwort nicht im Klartext gespeichert ist, und ist sicher vor allen neugierigen Blicken, auch diejenigen, die vertrauenswürdig sein könnten angenommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top