From 4058ac1bc418a23dc35ed5332154bebad4a2582c Mon Sep 17 00:00:00 2001 From: abraham Date: Wed, 14 Oct 2026 12:20:54 +0200 Subject: [PATCH] rapport --- COMPTE_RENDU.md | 147 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 129 insertions(+), 18 deletions(-) diff --git a/COMPTE_RENDU.md b/COMPTE_RENDU.md index b508644..957c2c1 100644 --- a/COMPTE_RENDU.md +++ b/COMPTE_RENDU.md @@ -30,33 +30,35 @@ Groupe : ### J1-J6 -- [ ] J1=1 -- [ ] J2=2+1 -- [ ] J3=7+1 -- [ ] J4=8+1 -- [ ] J5=10+1 -- [ ] J6=8+1 +- [ ] J1 = 1 +- [ ] J2 = 2 + 1 = 3 +- [ ] J3 = 7 + 1 = 8 +- [ ] J4 = 8 + 1 = 9 +- [ ] J5 = 10 + 1 = 11 +- [ ] J6 = 8 + 1 = 9 ### C1-C6 -- [ ] C1=1 -- [ ] C2=2+1 -- [ ] C3=2+1 -- [ ] C4=7+1 -- [ ] C5=7+1 -- [ ] C6=10+1 +- [ ] C1 = 1 +- [ ] C2 = 2 + 1 = 3 +- [ ] C3 = 2 + 1 = 3 +- [ ] C4 = 7 + 1 = 8 +- [ ] C5 = 7 + 1 = 8 +- [ ] C6 = 10 + 1 = 11 ### P1-P5 -- [ ] P1=1 -- [ ] P2=2+1 -- [ ] P3=2+1 -- [ ] P4=2+1 -- [ ] P5=13+1 +- [ ] P1 = 1 +- [ ] P2 = 2 + 1 = 3 +- [ ] P3 = 2 + 1 = 3 +- [ ] P4 = 2 + 1 = 3 +- [ ] P5 = 13 + 1 = 14 +### Complexité max : P5 = 14 + ## 3. Classer @@ -97,4 +99,113 @@ L'utilisation des <&&> et <||> sont nécessaire pour une compréhention plus sim -## 5. Refactoriser \ No newline at end of file +## 5. Refactoriser + + +### P5 + +``` +def analyser_mot_de_passe(mdp, login=None): + problemes = [] + if len(mdp) < 12: + problemes.append("trop court") + majuscule = minuscule = chiffre = special = False + for c in mdp: + if c.isupper(): + majuscule = True + elif c.islower(): + minuscule = True + elif c.isdigit(): + chiffre = True + else: + special = True + 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") + 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 +``` + +Devien une fois transformé : + +``` +def analyser_mot_de_passe(mdp, login=None): + problemes = [] + taille_mdp(mdp, problemes) + majuscule = caractere_majuscule + minuscule = caractere_minuscule + chiffre = caractere_chiffre + special = caractere_special + problemes(majuscule, minuscule, chiffre, special, login, mdp, problemes) + 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 + + + +def problemes(majuscule, minuscule, chiffre, special, login=none, mdp, 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") + if login and login.lower() in mdp.lower(): + problemes.append("ne pas contenir le login") + + + +def taille_mdp(mdp, problemes[]): + if len(mdp) < 12: + return problemes.append("trop court") + + + +def caractere_majuscule(mdp): + majuscule = False + for c in mdp: + if c.isupper(): + majuscule = True + return majuscule + + + +def caractere_minuscule(mdp): + minuscule = False + for c in mdp: + if c.isupper(): + minuscule = True + return minuscule + + + +def caractere_chiffre(mdp): + chiffre = False + for c in mdp: + if c.isupper(): + chiffre = True + return chiffre + + + +def caractere_special(mdp): + special = False + for c in mdp: + if c.isupper(): + special = True + return special +``` \ No newline at end of file