Quindi ho scoperto questo codice seguente utilizzato per verificare il livello elevato di password.
Ero un po 'confuso riguardo alla parte: score = len([x for x in password_strength.values() if x])
So che è stato usato per contare il valore apparso in 'password', ma la sintassi è strana per me.
E mi chiedo se questo è il modo più semplice.
#!/usr/bin/python
import re
def password():
print ('Enter a password\n\nThe password must be between 6 and 12 characters.\n')
while True:
password = input('Password: ... ')
if 6 <= len(password) < 12:
break
print ('The password must be between 6 and 12 characters.\n')
password_scores = {0:'Horrible', 1:'Weak', 2:'Medium', 3:'Strong'}
password_strength = dict.fromkeys(['has_upper', 'has_lower', 'has_num'], False)
if re.search(r'[A-Z]', password):
password_strength['has_upper'] = True
if re.search(r'[a-z]', password):
password_strength['has_lower'] = True
if re.search(r'[0-9]', password):
password_strength['has_num'] = True
score = len([x for x in password_strength.values() if x])
print ('Password is %s' % password_scores[score])
password()