Position actuelle: Accueil> Derniers articles> Formats de sel commun et leurs exemples d'erreur

Formats de sel commun et leurs exemples d'erreur

M66 2025-05-20

Dans PHP, la fonction crypte () est largement utilisée pour le cryptage de mot de passe. Il utilise différents formats de sel (sel) pour améliorer la sécurité des mots de passe en fonction de différents algorithmes de chiffrement. Une bonne compréhension et une utilisation du sel sont essentielles pour assurer la sécurité de votre mot de passe. Cet article présentera en détail le format de sel commun, donnera des exemples d'erreurs d'utilisation courantes et fournira des suggestions pour éviter les problèmes.

Fonction de crypte et sa fonction du sel

La fonction crypte () génère des chaînes cryptées en fonction du mot de passe et du sel passé. Le but du sel est d'empêcher le même mot de passe de générer le même résultat de chiffrement et d'éviter les attaques de table arc-en-ciel. Différents algorithmes de chiffrement nécessitent différents formats de sel. La fonction Crypt () de PHP prend en charge une variété d'algorithmes, tels que DES, MD5, Blowfish, SHA-256 et SHA-512.

Formats de sel commun

Algorithme de chiffrement Exemple de format de sel décrire
Des 2 caractères, comme "xy" Le cryptage DES traditionnel utilise uniquement les deux premiers caractères comme sel, avec un jeu de caractères limité.
Md5 1 $ [caractères 8 bits] $ , par exemple 1 $ $ abcdefgh $ Utilisez le logo à 1 $ , avec des caractères 8 bits en sel, en prenant en charge le cryptage MD5 plus fort.
Flowfish 2A $ [coût 2 bits] $ [caractères 22 bits] $ , par exemple 2A $ 10 $ ABCDEFGHIJK1234567890. Algorithme Blowfish, paramètres de coût 2 bits, caractères de sel 22 bits, haute intensité.
SHA-256 5 $ [sel] $ , par ex. 5 $ Saltsstring $ Utilisez SHA-256, la longueur de sel est illimitée, mais il est recommandé de compter environ 16 caractères.
SHA-512 6 $ $ [SALT] $ , par ex. 6 $ Saltsstring $ L'utilisation de SHA-512 est plus sécurisée, la longueur de sel est illimitée, mais elle est recommandée à environ 16 caractères.

Exemple d'utilisation (remplacer le nom de domaine par m66.net)

 <?php
// utiliser MD5 Mot de passe de chiffrement algorithme,Format de sel Conforme MD5 Exiger
$password = "mypassword";
$salt = '$1$abcdefgh$'; // MD5 Salt,8 Bid personnages
$hashed = crypt($password, $salt);
echo "MD5 hashed password: " . $hashed . "\n";

// utiliser Blowfish cryptage,Le coût est 10,22 Personnages de sel un peu
$blowfish_salt = '$2a$10$abcdefghijk1234567890./'; 
$hashed_bf = crypt($password, $blowfish_salt);
echo "Blowfish hashed password: " . $hashed_bf . "\n";

// Exemple URL,Remplacer le nom de domaine comme m66.net
echo "Visitez le site Web:https://www.m66.net/login\n";
?>

Erreurs d'utilisation courantes et leurs conséquences

  1. Erreur de format de sel <br> Par exemple, l'utilisation du cryptage MD5 sans le préfixe de 1 $ , ou le sel Blowfish est insuffisant. Le résultat entraînera la dégradation de l'algorithme de cryptage ou de la défaillance de cryptage, et le hachage généré est dangereux.

  2. Insuffisant ou trop long du sel <br> Différents algorithmes ont des exigences pour la longueur du sel. La longueur inadéquate entraîne une diminution de la sécurité. S'il est trop long, il peut être tronqué et non utilisé efficacement.

  3. Le sel contient des caractères illégaux
    Le sel ne peut contenir que des jeux de caractères spécifiques (généralement ./0-9A-ZA-Z ), et les caractères illégaux échoueront aux exceptions de chiffrement ou de résultat.

  4. Réutiliser le même sel <br> Bien que le même sel puisse être utilisé, cela réduit le caractère aléatoire et la sécurité du hachage. Il est recommandé de générer des sels uniques et aléatoires pour chaque mot de passe.

Comment éviter les problèmes courants?

  • Adhérez strictement au format de sel et sélectionnez la structure et la longueur du sel correctes en fonction de l'algorithme.

  • Générez des sels avec des nombres aléatoires sûrs , tels que random_bytes () ou openssl_random_pseudo_bytes () , en évitant les sels fixes.

  • Utilisez la fonction Password_hash () de PHP , qui résume la génération correcte de sel et la sélection des algorithmes, et est recommandé.

  • Vérifiez le résultat du chiffrement et assurez-vous que la chaîne cryptée contient l'identifiant de sel attendu.

  • Évitez de mettre en œuvre vous-même des processus complexes de sel et de chiffrement et de réduire la probabilité d'erreurs.

Résumer

La fonction crypt () est puissante dans le chiffrement des mots de passe, mais il a des exigences très strictes sur le format et le contenu du sel lorsqu'il est utilisé. Comprendre le format de sel correspondant à différents algorithmes de chiffrement et éviter les erreurs courantes est une partie importante de l'assurance de la sécurité du mot de passe. Pour les nouveaux projets, il est recommandé d'utiliser plus de mot de passe moderne_hash () et de mot de passe_verify () pour simplifier le processus de développement et améliorer la sécurité.