Heim > häufiges Problem > Welche Methoden zur Passwortverschlüsselung gibt es?

Welche Methoden zur Passwortverschlüsselung gibt es?

藏色散人
Freigeben: 2022-06-30 16:45:19
Original
27631 Leute haben es durchsucht

Passwortverschlüsselungsmethoden umfassen: 1. Speichern im Klartext; 2. Speichern mit symmetrischem Verschlüsselungsalgorithmus; 3. Einweg-HASH-Algorithmen wie MD5 und SHA1; 5. Algorithmen wie bcrypt und scrypt;

Welche Methoden zur Passwortverschlüsselung gibt es?

Verschlüsselungsmethoden für Benutzerkennwörter

Welche Verschlüsselungsmethoden gibt es beim Speichern von Benutzerkennwörtern in der Datenbank? Die folgenden Methoden sind gängige Methoden zum Speichern von Kennwörtern:

1. Im Klartext speichern

Für Beispiel: Benutzer Das festgelegte Passwort lautet „123456“ und speichert „123456“ direkt in der Datenbank. Dies ist die einfachste und auch unsicherste Methode zum Speichern. Tatsächlich übernehmen jedoch möglicherweise viele Internetunternehmen diesen Ansatz.

2. Zum Speichern werden symmetrische Verschlüsselungsalgorithmen wie 3DES, AES und andere Algorithmen verwendet, die das ursprüngliche Passwort durch Entschlüsselung wiederherstellen können. Da jedoch eine große Menge an Benutzerinformationen durchgesickert ist, ist es wahrscheinlich, dass auch der Schlüssel durchgesickert ist. Natürlich können allgemeine Daten und Schlüssel getrennt gespeichert und verwaltet werden, aber es ist auch sehr kompliziert, die Schlüssel vollständig zu schützen Das ist nicht im positiven Sinne.

3. Einweg-HASH-Algorithmen wie MD5 und SHA1

Nach der Verwendung dieser Algorithmen kann das ursprüngliche Passwort nicht durch Berechnung wiederhergestellt werden, und die Implementierung ist relativ einfach, daher verwenden viele Internetunternehmen diese Methode, um Benutzerpasswörter zu speichern Früher war dies eine relativ sichere Methode, aber mit dem Aufkommen der Rainbow-Table-Technologie können Rainbow-Tables zum Nachschlagen und Knacken von Tabellen erstellt werden. Diese Methode ist derzeit sehr unsicher.

Tatsächlich hat das Unternehmen diese MD5-Verschlüsselungsmethode auch schon früher verwendet.

4. PBKDF2-Algorithmus

Das Prinzip dieses Algorithmus entspricht in etwa dem Hinzufügen von Zufalls-Salt zum HASH-Algorithmus und der Durchführung mehrerer HASH-Operationen. Das Zufalls-Salt erhöht die Schwierigkeit beim Erstellen einer Regenbogentabelle erheblich, und mehrere HASH machen die Erstellung ebenfalls eines Regenbogentisches schwieriger und die Schwierigkeit, ihn zu knacken, ist deutlich gestiegen.

Bei Verwendung des PBKDF2-Algorithmus verwendet HASH im Allgemeinen sha1 oder sha256. Die Länge des Zufallssalzes sollte im Allgemeinen nicht weniger als 8 Bytes betragen und die Anzahl der HASHes muss mindestens 1.000 Mal betragen, damit die Sicherheit hoch genug ist . Ein Passwortverifizierungsprozess führt 1000 HASH-Operationen aus, die für den Server möglicherweise nur 1 ms dauern, aber die Berechnungskosten erhöhen sich für den Cracker um das 1000-fache und erfordern mindestens 8 Bytes zufälliges Salt, was die Schwierigkeit beim Erstellen einer Tabelle um N erhöht Größenordnung, die das Knacken von Passwörtern in großem Umfang nahezu unmöglich macht. Dieser Algorithmus wird auch vom National Institute of Standards and Technology empfohlen.

5. Algorithmen wie bcrypt und scrypt

Diese beiden Algorithmen können auch Regenbogentabellen effektiv widerstehen. Wenn Sie diese beiden Algorithmen verwenden, müssen Sie auch entsprechende Parameter angeben, was das Knacken erschwert.

In der Kryptographie ist scrypt (ausgesprochen „ess crypt“) eine Schlüsselableitungsfunktion, die 2009 von Colin Percival erfunden wurde. Sie war ursprünglich für die Verwendung im von ihm gegründeten Tarsnap-Dienst konzipiert. Es wurde für groß angelegte Angriffe auf benutzerdefinierte Hardware entwickelt und ist bewusst so konzipiert, dass es große Mengen an Speicher benötigt.

Die Berechnung von Scrypt dauert nicht nur lange, sondern beansprucht auch viel Speicher, was die parallele Berechnung mehrerer Digests äußerst schwierig macht, sodass es schwieriger ist, Rainbow Tables zur Durchführung von Brute-Force-Angriffen zu verwenden. Scrypt wird in Produktionsumgebungen nicht häufig verwendet und es mangelt an sorgfältiger Prüfung und umfassender Bibliotheksunterstützung. Solange es jedoch keine Mängel auf Algorithmusebene gibt, sollte Scrypt sicherer sein als PBKDF2 und bcrypt.

Zusammenfassung

Mit PBKDF2, bcrypt, scrypt und anderen Algorithmen können Rainbow-Table-Angriffe effektiv abgewehrt werden. Selbst wenn die Daten durchgesickert sind, kann das kritischste „Benutzerkennwort“ immer noch wirksam geschützt werden, und Hacker können Benutzerkennwörter nicht in großen Mengen knacken , wodurch Credential Stuffing verhindert wird.

Das obige ist der detaillierte Inhalt vonWelche Methoden zur Passwortverschlüsselung gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage