From c136e1a30a3b5444e0e2e3084b604a254dd04abe Mon Sep 17 00:00:00 2001 From: camille Date: Wed, 14 Oct 2026 14:00:35 +0200 Subject: [PATCH] =?UTF-8?q?trois=20fonctions=20pour=20simplifier=20la=20co?= =?UTF-8?q?mplexit=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- exercices.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/exercices.py b/exercices.py index 691fb9b..4998642 100644 --- a/exercices.py +++ b/exercices.py @@ -40,6 +40,16 @@ def analyser_mot_de_passe(mdp, login=None): if len(mdp) < 12: problemes.append("trop court") majuscule = minuscule = chiffre = special = False + kindOfLetter(mdp) + verifyCharMix(problemes) + verifyPswdSafety(problemes) + if not problemes: + return "fort", [] + return ("moyen" if len(problemes) <= 2 else "faible"), problemes + + + +def kindOfLetter(mdp): for c in mdp: if c.isupper(): majuscule = True @@ -49,21 +59,25 @@ def analyser_mot_de_passe(mdp, login=None): chiffre = True else: special = True + return [majuscule, minuscule, chiffre, special] + +def verifyCharMix(problemes): if not (majuscule and minuscule): problemes.append("mélanger majuscules et minuscules") if not chiffre: problemes.append("ajouter un chiffre") if not special: problemes.append("ajouter un caractère spécial") + return problemes + +def verifyPswdSafety(problemes): if login and login.lower() in mdp.lower(): problemes.append("ne pas contenir le login") for i in range(len(mdp) - 2): if mdp[i] == mdp[i + 1] == mdp[i + 2]: problemes.append("éviter 3 caractères identiques") break - if not problemes: - return "fort", [] - return ("moyen" if len(problemes) <= 2 else "faible"), problemes + return problemes if __name__ == "__main__":