Buongiorno ragazzi, stavo provando a scrivere un programma in Python, molto basilare, per la verifica delle password. In particolare, data una stringa, se la lunghezza di questa è almeno di 7 caratteri, ha almeno 2 caratteri speciali ('!', '#', '*', '@', '&', '%') e contiene almeno 2 numeri il programma stampa "Forte". Se queste condizioni vengono meno, il programma stampa "Debole". Ho scritto il codice e funziona. Volevo avere qualche consiglio da parte vostra per renderlo più compatto, in particolare volevo sapere se ci fosse qualche metodo alternativo per abbreviare la funzione che verifica i caratteri speciali. Avevo pensato di conteggiarli nella password, come già faccio, per aggiungerli ad una lista e poi usare la funzione sum(), al posto di fare la somma dei singoli conteggi. Cosa ne pensate? Di seguito il codice:
Python:
# PASSWORD VALIDATOR made by CrazyMonk
def verifyLength(str):
if (len(str) < 7):
return False
else:
return True
def verifySpecialChars(str):
esclamativi = str.count('!')
chiocciole = str.count('@')
cancelletti = str.count('#')
dollari = str.count('$')
percento = str.count('%')
eCommerciali = str.count('&')
asterischi = str.count('*')
sommaCaratteri = esclamativi + chiocciole + cancelletti + dollari + percento + eCommerciali + asterischi
if (sommaCaratteri >= 2):
return True
else:
return False
def verifyNumbers(str):
sum = 0
for i in str:
if i.isdigit():
sum = sum +1
if (sum < 2):
return False
else:
return True
password = input();
if (verifyLength(password) and verifySpecialChars(password) and verifyNumbers(password)):
print("Strong")
else:
print("Weak")