Maison  >  Article  >  développement back-end  >  Analyse de l'algorithme de cryptage du mot de passe utilisateur PHP

Analyse de l'algorithme de cryptage du mot de passe utilisateur PHP

怪我咯
怪我咯original
2018-05-28 11:50:313349parcourir

Les

Les algorithmes de chiffrement courants peuvent être divisés en trois catégories : les algorithmes de chiffrement symétriques, les algorithmes de chiffrement asymétriques et les algorithmes de Hash. Le

Le chiffrement symétrique

fait référence à un algorithme de chiffrement qui utilise la même clé pour le chiffrement et le déchiffrement. Les avantages des algorithmes de chiffrement symétrique résident dans la vitesse élevée de chiffrement et de décryptage et dans la difficulté de crackage lors de l'utilisation de clés longues. En supposant que deux utilisateurs doivent utiliser une méthode de chiffrement symétrique pour chiffrer puis échanger des données, les utilisateurs ont besoin d'au moins 2 clés et les échangent. S'il y a n utilisateurs dans l'entreprise, l'entreprise entière aura besoin d'un total de n × (n-). 1) clés La génération et la distribution de clés deviendront un cauchemar pour les services d'information des entreprises. La sécurité de l'algorithme de chiffrement symétrique dépend du stockage de la clé de chiffrement, mais il est impossible d'exiger que toutes les personnes dans l'entreprise qui détiennent la clé la gardent secrète, intentionnellement ou non. . Fuite - Si la clé utilisée par un utilisateur est obtenue par un intrus, l'intrus peut lire tous les documents cryptés par la clé de l'utilisateur. Si l'ensemble de l'entreprise partage une clé de cryptage, la confidentialité de l'ensemble des documents de l'entreprise sera perdue. à propos de.

Algorithmes de chiffrement symétriques courants : DES, 3DES, DESX, Blowfish, IDEA, RC4, RC5, RC6 et AES

Cet article présente principalement plus en détail l'algorithme de chiffrement du mot de passe utilisateur PHP Le principe de l'algorithme de cryptage Discuz est analysé et la méthode d'implémentation de l'algorithme .net est comparée à l'exemple de formulaire, et le processus et la méthode d'implémentation du cryptage utilisateur en PHP sont résumés. Les amis dans le besoin peuvent se référer au mot de passe de

<.>

Discuz L'algorithme de cryptage est en fait deux cryptages MD5. Tout d'abord, cryptez avec du texte brut, puis générez aléatoirement un sel, puis ajoutez du sel après le premier texte chiffré en texte brut et effectuez à nouveau le cryptage MD5. Le sel est stocké dans la table uc_members et peut être obtenu par nom d'utilisateur.

Comme ceci :

MD5(MD5(plaintext)+salt)

Ce qui suit est le code d'implémentation de . 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();
}

Résumé des méthodes de jugement de mot de passe :

① Pour

installer UC

② Ouvrez la base de données et trouvez la table uc_members, recherchez le dernier champ "salt" et copiez la valeur à l'intérieur

③ Pseudo code :

$s=md5(md5("密码")."salt字段的值");
echo $s;
④ Utilisez IF pour juger

⑤ Dites-le encore! Ce nombre aléatoire est composé de 6 chiffres !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn