2017-08-04 1 views
0

J'ai besoin de faire un programme de réinitialisation de mot de passe qui oblige l'utilisateur à entrer son nouveau mot de passe deux fois pour que l'ordinateur sache que l'utilisateur n'a pas fait d'erreur lors de la saisie de son nouveau mot de passe. il ne devrait accepter le mot de passe que s'il est composé de huit caractères ou moins et comprend à la fois des minuscules et des majuscules. voici ce que j'ai jusqu'à présent:réinitialisation mot de passe programme python

import os 
import time 

def main(): 
    while True: 
     PassWord = input ("Enter Password: ") 

      for c in s: 
       if c.islower(): 
       print c 
      Password == : 
      time.sleep(1) 
      print ("Login successful!") 
      logged() 

     else: 
      print ("Please try again") 

def logged(): 
    time.sleep(1) 
    print ("Welcome to ----") 


main() 
+1

'Mot de passe ==:' est pas valide python ...; –

+1

'pour c dans s: si c.islower(): print c' qu'est-ce que s? –

Répondre

0

Il y a beaucoup d'erreurs syntaxiques dans votre programme. Cela vaut la peine de reconsidérer la logique de base.

import os 
import time 
import getpass 

def logged(): 
    time.sleep(1) 
    print ("Welcome to ----") 


def checklower(pw): 
    for c in pw: 
     if c.islower(): 
      return True 

def checkupper(pw): 
    for c in pw: 
     if c.isupper(): 
      return True 

def main(): 
    while True: # having this loop because you have it too 
     password_1 = getpass.getpass() 
     print "One more time" 
     password_2 = getpass.getpass() 
     if (password_1 != password_2) or not (checkupper(password_1)) or not (checklower(password_2)) or not (len(password_1) >= 8): 
      print "Please try again" 
      continue 
     else: 
      logged() 
      break 

main() 

: une super mise en œuvre rapide et sale de ce que vous avez besoin

0

Je ne suis pas vraiment sûr de ce système d'authentification permet de huit caractères ou moins, mais bien sûr, nous pouvons le faire fonctionner. En ce qui concerne les mots de passe, vous ne devriez pas vraiment utiliser input. Dans ce cas, quiconque regarde par-dessus votre épaule peut facilement obtenir votre mot de passe. Vous devriez plutôt utiliser getpass, qui fait partie de la bibliothèque standard. Une fonction vérifiera si le mot de passe répond aux conditions et retournera une valeur booléenne. Ce n'est pas la meilleure implémentation, mais cela fonctionne pour ce problème. J'espère que cela t'aides.

from getpass import getpass 


def check_password(password): 
    if len(password) > 9: 
     return False 
    for character in password: 
     if character.isupper(): 
      return True 


def main(): 
    while True: 
     password = getpass() 
     if password == getpass(): 
      if check_password(password): 
       print('Successfully logged in.') 
       break 
     else: 
      print('Try again!') 

if __name__ == '__main__': 
    main() 
0
import time 
import re 

password='' 
password2='' 
def validate_password(password): 
     if len(password) <8: 
      print 'returning 1' 
      return 1 
     if not re.search('[0-9]',password): 
      return 2 
     if not re.search('[a-z]',password): 
      return 3 
     if not re.search('[A-Z]',password): 
      return 4 
     return 0 

def check_password(password,password2): 
     if password==password2: 
      return True 
     else: 
      return False 

def get_password(): 
     password=raw_input('Enter password:') 
     flag=validate_password(password) 
     if flag==0: 
      password2=raw_input('Re-Enter Password:') 
      flag2=check_password(password,password2) 
      if flag2==True: 
        return True 
      else: 
        print 'Passwords do not match!!' 
        return False 
     elif flag==1: 
      print 'Password must be of 8 characters' 
      return False 
     elif flag==2: 
      print 'Password must contain a number' 
      return False 
     elif flag==3: 
      print 'Password must include a small letter' 
      return False 
     elif flag==4: 
      print 'Password must also include a small letter' 
      return False 
def logged(): 
     print 'Logging in...' 
     time.sleep(5) 
     print 'Successfully logged in' 

def main(): 
     flag=get_password() 
     if flag==True: 
      logged() 
     else: 
      while True: 
##     print '' 
        get_password() 

main()