Skip to content
Gérits Aurélien edited this page Feb 21, 2026 · 2 revisions

Le PasswordTool est un composant utilitaire dédié à la manipulation sécurisée des mots de passe et à la génération de jetons cryptographiques. Il encapsule les fonctions natives de PHP (BCrypt/Argon2) pour offrir une interface robuste et évolutive.

Namespace : Magepattern\Component\Security\PasswordTool

Fonctionnalités Principales

  1. Hachage et Vérification La méthode hash() utilise l'algorithme par défaut le plus fort supporté par votre version de PHP (actuellement BCrypt ou Argon2id).
use Magepattern\Component\Security\PasswordTool;

// Création d'un hash pour stockage en base de données
$secureHash = PasswordTool::hash('mon_mot_de_passe_secret');

// Vérification lors de la connexion
if (PasswordTool::verify($userInput, $storedHash)) {
    // Connexion réussie
}
  1. Validation de la Robustesse La méthode checkStrength() permet d'imposer des règles de sécurité strictes lors de la création ou du changement de mot de passe.
$password = $_POST['new_password'];

if (!PasswordTool::checkStrength($password, 10)) {
    echo "Le mot de passe doit faire 10 caractères et contenir : 
          1 majuscule, 1 minuscule, 1 chiffre et 1 caractère spécial.";
}
  1. Génération de Mots de Passe et Tokens Utile pour la création de comptes par un administrateur ou pour les processus de récupération de compte.
// Génère un mot de passe temporaire de 12 caractères
$tempPassword = PasswordTool::generateRandom(12);

// Génère un jeton sécurisé pour un lien "Mot de passe oublié"
$resetToken = PasswordTool::generateResetToken();
// Résultat : a8f5f167f44f4964e6c998dee827110c...

Détails des Méthodes

Méthode Rôle Retour
hash(string $p) Génère un hash sécurisé à sens unique. string
verify(string $p, string $h) Compare un mot de passe brut avec son hash. bool
needsRehash(string $h) Détermine si le hash doit être recalculé (changement d'algorithme). bool
generateRandom(int $l) Génère une chaîne aléatoire cryptographiquement sûre. string
generateResetToken(int $l) Génère un jeton hexadécimal unique. string
checkStrength(string $p, int $m) Valide la complexité du mot de passe. bool

Sécurité & Standards

  • Entropie : Utilise random_int() et random_bytes(), s'appuyant sur le générateur de nombres aléatoires du système d'exploitation.
  • Résistance : Protection native contre les attaques par dictionnaire et par table de "Rainbow Tables" grâce au salage automatique.
  • Évolutivité : En centralisant ces appels, toute modification des politiques de sécurité globale du projet s'effectue à un seul endroit.

Clone this wiki locally