In Anwendungen besteht häufig die Notwendigkeit, Benutzerkennwörter zu verschlüsseln und zu speichern. Das Speichern von Passwörtern im Klartext hat einen Nachteil: Sobald es durchgesickert ist, führt es leicht zu großen Verlusten und kann auch zu Verlusten bei Benutzern und Passwörtern anderer Websites führen (da die meisten Benutzer auf den meisten Websites dasselbe Konto und dasselbe Passwort verwenden). ).
Dieses Leck kann zwei Ursachen haben: Hacker und Betriebs- und Wartungspersonal, die Diebstahl begehen.
Um zu verhindern, dass der Klartext des Passworts durchsickert, müssen wir das in der Datenbank gespeicherte Passwortfeld irreversibel verschlüsseln. Genauer gesagt wird es verschlüsselt und dann in der Datenbank gespeichert.
Zu den häufig verwendeten irreversiblen Verschlüsselungsalgorithmen gehören MD5 und SHA-1.
In NodeJS sind sie extrem einfach zu verwenden. Verwenden Sie einfach das offizielle integrierte crypto
Paket:
var clearText = '123456'; // MD5 Hash require('crypto').createHash('md5').update(clearText).digest('hex'); // 'e10adc3949ba59abbe56e057f20f883e' // SHA-1 Hash require('crypto').createHash('sha1').update(clearText).digest('hex'); // '7c4a8d09ca3762af61e59520943dc26494f8941b'
Wann Wenn sich ein Benutzer registriert, wird das vom Benutzer übermittelte Passwort zunächst irreversibel verschlüsselt und anschließend der Chiffretext in der Datenbank gespeichert.
Wenn sich ein Benutzer anmeldet, wird das vom Benutzer übermittelte Passwort zunächst auf die gleiche Weise verschlüsselt und dann mit dem Chiffretext in der Datenbank verglichen, um festzustellen, ob das Passwort korrekt ist.
Theoretisch gibt es unzählige Passwörter, die demselben Hash-Wert entsprechen, aber machen Sie sich keine allzu großen Sorgen über das Risiko, getroffen zu werden, denn im Vergleich dazu sind Ihr Webserver und Ihre Datenbank möglicherweise anfällig für Überschwemmungen Angriffe kollabieren zuerst.
Verwandte Empfehlungen:
Erhöhen Sie die Sicherheit der Speicherung und Überprüfung von Benutzerkennwörtern_PHP-Tutorial
Das obige ist der detaillierte Inhalt vonNodeJS implementiert irreversible Verschlüsselung und Passwortspeicherung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!