-
Notifications
You must be signed in to change notification settings - Fork 0
PasswordTool
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
- 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
}- 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.";
}- 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...| 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 |
- 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.