Bonjour, (niveau Bac)
je n'arrive pas à faire cet exo, j'ai besoin de votre aide pour cet algorithme s'il vous plaît .


Bonjour Niveau Bac Je Narrive Pas À Faire Cet Exo Jai Besoin De Votre Aide Pour Cet Algorithme Sil Vous Plaît class=

Sagot :

Réponse :

Voilà les fonctions à utiliser. Par contre je n'ai pas le chiffrement ni les contraintes de stockage dans le fichier qui n'est pas expliqué dans l'énoncé

Explications :

def verifieSaisie(motPasse):

   special = ['*', '#', '

, '!']

   fSpecial = False

   for c in special:

       fSpecial = fSpecial or (c in motPasse)

   return fSpecial and (motPasse != motPasse.lower())

def nbMajuscule(motPasse):

   n=0

   for c in motPasse:

       if c.isupper():

           n+=1

   return n

def nbMinuscule(motPasse):

   n=0

   for c in motPasse:

       if c.islower():

           n+=1

   return n

def nbChiffre(motPasse):

   n = 0

   for c in motPasse:

       if c.isdecimal():

           n += 1

   return n

def nbSpecial(motPasse):

   special = ['*', '#', '

, '!']

   n = 0

   for c in special:

       if c in motPasse:

           n += 1

   return n

def force(motPasse):

   n= 8*len(motPasse)-2*nbMajuscule(motPasse)-2*nbMinuscule(motPasse)+4*nbChiffre(motPasse)+6*nbSpecial(motPasse)

   if n<40:

       return "Faible"

   if n<80:

       return "Moyenne"

   if n<120:

       return "Forte"

   return "Très forte"

def saisieMotPasse():

   while True:

       motPasse = str(input("Quel est votre mot de passe"))

       if verifieSaisie(motPasse):

           print("Mot de passe de force {0}".format(force(motPasse)))

           return motPasse

       print("Le mot de passe doit avoir au moins une majuscule et un caractère spécial")

   return