Entschlüsseln SHA256-hash der ursprünglichen string?
Ist es möglich, eine ursprüngliche hash-Wert, und dann decodieren Sie zurück in die ursprüngliche Zeichenfolge?
hash('sha256', $login_password_for_login)
bekommt von mir ein hash, wie unten dargestellt, aber ich würde gerne gehen, aus dem hash-Wert wieder auf die ursprüngliche Zeichenfolge.
Mit $login_password_for_login = 12345
, die hash
Funktion gibt mir dies:
5994471abb01112afcc18159f6cc74b4f511b99806da59b3caf5a9c173cacfc5
Ich würde gerne in der Lage, zum abrufen der ursprünglichen Zahl oder Zeichenkette ein, ich hatte für das login-Passwort. Wie vertausche ich die hash und die ursprüngliche Zeichenfolge?
- Hashes sind one-way. Sie können nicht entschlüsselt werden, da Sie nicht verschlüsselt sind.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du nicht 'entschlüsseln' der hashes, denn das hashing wird nicht die Verschlüsselung.
Als für das lösen der hash-Funktion, um die ursprünglichen string, es gibt keinen Weg zu gehen, hash von original-Artikel, als hashing ist eine ein-Richtung action. Sie können nehmen Sie ein Element und erhalten einen hash, aber Sie können nicht nehmen Sie die hash-und erhalten das original.
Machen einen Hinweis, dass die hashes NICHT verwechselt werden sollten mit Verschlüsselung; Verschlüsselung ist ein anderer Prozess, wo Sie können nehmen Sie ein Element, verschlüsseln Sie es mit irgendeiner Art von Schlüssel (entweder preshared-oder symmetrischen Schlüssel wie PGP-Schlüssel), und dann später entschlüsseln. Hashes funktionieren nicht so.
In den Kommentaren, zeigen Sie an, dass Sie versuchen, speichern Sie ein Passwort in der Datenbank. Das problem ist, wollen Sie nicht jemanden, der Verletzung der DB, die sofort in der Lage zu entschlüsseln Passwörter, die ist, warum hashing ist so attraktiv.
Die Idee, dann, ist, dass Sie betrachten Verwendung von salted hashes, die Speicherung nur der Salz auf einer pro-Benutzer-basis in der DB als eigenen Datensatz, und speichern Sie dann die gesalzenen hash von Ihrer ursprünglichen Passwort-string in der Datenbank.
Dann, um zu überprüfen, Passwort eingegeben wird ordnungsgemäße, bekommen den salt aus der DB Holen Sie sich die Benutzereingabe für ein bestimmtes Kennwort, und verwenden Sie dann den salt aus der DB Holen Sie sich die salted hash für die input. Nehmen, dass der resultierende hash und vergleicht Sie mit den salted hash gespeichert in der DB. Wenn Sie übereinstimmen, haben Sie ein validiertes Passwort; wenn Sie nicht übereinstimmen, ist es ungültig.
Diese Weise gibt es keinen Entschlüsselung der alle Passwörter leicht machbar, was bedeutet, dass in einem Verstoß gegen den Datenschutz ist-situation Ihrer Website die Passwörter sind nicht leicht in der Lage, abgerufen werden. (Dies nicht ausschließen, jemanden verletzen Ihre Datenbank kopieren nach unten die Daten, und versuchen, brute-force die Passwörter, aber je nachdem, was Sie erzwingen für die Passwort-Komplexität und der Aufwand ein hacker will tatsächlich durch zu bekommen Anmeldeinformationen, dies ist weniger wahrscheinlich passieren wird)
Ich würde schreiben, ein Beispiel dafür in einer Sprache, die ich verstehen, aber wie Sie nicht definieren, was Sprache mit der Sie arbeiten, es ist nicht möglich für mich zu schreiben, ist ein gutes Beispiel für Sie hier.
Sagte, dass, wenn Sie mit PHP zu arbeiten, finden Sie möglicherweise dieses Dokument auf crackstation.net über das tun sicher gesalzene Passwort-hashing korrekt; es gibt bereits PHP-Implementierungen tun das richtige, so dass Sie nicht haben, um eigenen code schreiben, angeblich.