Voici ma participation avec un outil développé en C# :
Password Strength Meter.
Cet outil permet de générer un mot de passe personnalisable en choisissant d'utiliser soit des chiffres, des lettres majuscules ou minuscules et même des symboles. Il permet aussi de mesurer la robustesse du mot de passe généré aléatoirement ou saisi par l’utilisateur.
Suivant les options sélectionnées la longueur du mot de passe varie de la valeur minimum de 8 caractères à la valeur maximum de 20 caractères.
Voici un exemple de paramétrage pour calcul un mot de Passe avec 3 Lettres majuscules, 4 Lettres minuscules, 2 Nombres et 3 Symboles.
Soit un mot de passe d’une longueur de 12 caractères. Le résultat obtenu étant le mot de passe :
$\mNn]3MsB2%
Concernant le calcul du score de robustesse, je me suis quelque peu inspiré du principe exposé sur le site
Yet Another Password Meter. Cependant j’ai opté pour des règles de calcul de détermination de la robustesse du mot de passe différentes. Ce calcul de robustesse n’est pas parfait, ni infaillible. Il a cependant l’avantage de montrer visuellement comment améliorer le mot de passe afin qu’il soit le plus difficilement possible « crackable ».
Les règles sont soit du type «
Bonus » , c'est-à-dire qu’elle augmente la valeur de la robustesse, soit du type «
Malus » diminuant la valeur de la robustesse.
La valeur maximum de cette robustesse étant 100 et le minimum étant 0.
Deux paramètres peuvent entrer en compte dans le calcul d’une règle. Le paramètre
len correspondant à la longueur du mot de passe et le paramètre
n correspondant au nombre de caractères trouvés correspondant à la règle.
Voici en exemple le résultat du calcul de robustesse sur le mot de passe :
$\mNn]3MsB2%
Pour réaliser cet outil j’ai développé les 2 classes suivantes :
- PasswordGenerator: Génération aléatoire d’un mot de passe.
- PasswordStrengthMeter: Calcul de la robustesse d’un mot de passe.
La classe
PasswordGenerator est assez simple. Elle expose juste la méthode
Generate(...) permettant de créer un nouveau mot de passe.
La classe
PasswordStrengthMeter expose les propriétés suivantes :
- Password : Spécifie le mot de passe pour lequel le calcul de robustesse sera effectué.
- Score : Valeur de la robustesse entre 0 et 100.
- Bonus : Valeur du bonus de la robustesse.
- Malus : Valeur du malus de la robustesse.
- Text : Description au format texte de la robustesse.
J'ai posté les sources des 2 classes.
-
C# : Génération aléatoire d'un mot de passe.
-
C# : Calcul de la robustesse d'un mot de passe
Pour les personnes qui seraient intéressées par cet outil, je prépare une installation Windows que je mettrais à disposition en téléchargement sur mon site.
Partager