Heim >Backend-Entwicklung >PHP-Tutorial >Analyse des PHP-Benutzerpasswort-Verschlüsselungsalgorithmus

Analyse des PHP-Benutzerpasswort-Verschlüsselungsalgorithmus

怪我咯
怪我咯Original
2018-05-28 11:50:313522Durchsuche

Übliche Verschlüsselungsalgorithmen können in drei Kategorien unterteilt werden: symmetrische Verschlüsselungsalgorithmen, asymmetrische Verschlüsselungsalgorithmen und Hash-Algorithmen.

Symmetrische Verschlüsselung

bezieht sich auf einen Verschlüsselungsalgorithmus, der denselben Schlüssel für die Ver- und Entschlüsselung verwendet. Die Vorteile symmetrischer Verschlüsselungsalgorithmen liegen in der hohen Geschwindigkeit der Ver- und Entschlüsselung und der Schwierigkeit beim Knacken bei Verwendung langer Schlüssel. Unter der Annahme, dass zwei Benutzer eine symmetrische Verschlüsselungsmethode zum Verschlüsseln und anschließenden Austausch von Daten verwenden müssen, benötigen die Benutzer mindestens zwei Schlüssel und tauschen diese aus. Wenn es n Benutzer im Unternehmen gibt, benötigt das gesamte Unternehmen insgesamt n×(n-1 ) Schlüssel Die Generierung und Verteilung von Schlüsseln wird für die Informationsabteilungen von Unternehmen zum Albtraum. Die Sicherheit des symmetrischen Verschlüsselungsalgorithmus hängt von der Speicherung des Verschlüsselungsschlüssels ab, aber es ist unmöglich, von jedem im Unternehmen, der den Schlüssel besitzt, zu verlangen, ihn geheim zu halten. Normalerweise wird der Schlüssel absichtlich oder unabsichtlich geheim gehalten. Leckage – Wenn der von einem Benutzer verwendete Schlüssel von einem Eindringling erhalten wird, kann der Eindringling alle mit dem Schlüssel des Benutzers verschlüsselten Dokumente lesen. Wenn das gesamte Unternehmen einen Verschlüsselungsschlüssel teilt, geht die Vertraulichkeit der gesamten Unternehmensdokumente verloren .

Gemeinsame symmetrische Verschlüsselungsalgorithmen: DES, 3DES, DESX, Blowfish, IDEA, RC4, RC5, RC6 und AES

In diesem Artikel wird hauptsächlich der Verschlüsselungsalgorithmus für PHP-Benutzerkennwörter ausführlicher vorgestellt. Das Prinzip von Der Discuz-Verschlüsselungsalgorithmus wird analysiert, die Implementierungsmethode des .net-Algorithmus mit dem Beispielformular verglichen und der Prozess und die Implementierungsmethode der Benutzerverschlüsselung in PHP zusammengefasst. Freunde in Not können sich auf das Passwort von

Discuz Der Verschlüsselungsalgorithmus besteht eigentlich aus zwei MD5-Verschlüsselungen. Zuerst mit Klartext verschlüsseln, dann zufällig einen Salt generieren, dann Salt nach dem ersten Chiffriertext als Klartext hinzufügen und erneut MD5-Verschlüsselung durchführen. Der Salt wird in der Tabelle uc_members gespeichert und kann über den Benutzernamen abgerufen werden.

So:

MD5(MD5(plaintext)+salt)

Das Folgende ist der Implementierungscode von . net:

string GetDiscuzPWString(string sourceStr, string salt)
{
   return GetMd5Hash(string.Concat(GetMd5Hash(sourceStr),salt));
}
string GetMd5Hash(string input)
{
  MD5 md5Hasher = MD5.Create();
  byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));
  StringBuilder sBuilder = new StringBuilder();
  for (int i = 0; i < data.Length; i++)
  {
    sBuilder.Append(data[i].ToString("x2"));
  }
  return sBuilder.ToString();
}

Fassen Sie die Methode zur Passwortbeurteilung zusammen:

① So ​​

installieren Sie UC

② Öffnen Sie die Datenbank und Suchen Sie die uc_members-Tabelle, suchen Sie das letzte Feld „salt“ und kopieren Sie den Wert hinein

③ Pseudocode:

$s=md5(md5("密码")."salt字段的值");
echo $s;
④ Verwenden Sie IF, um zu beurteilen

⑤ Sagen Sie es wieder! Diese Zufallszahl ist 6-stellig!

Das obige ist der detaillierte Inhalt vonAnalyse des PHP-Benutzerpasswort-Verschlüsselungsalgorithmus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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