Доброе время суток, задача сделать проверку пароля на соответствие требованиям безопасности но ни как не выходит добиться 100%-го соответствия требованиям и не много не могу разобраться правильно ли я вообще делаю? Пожалуйста подскажите мои ошибки и как правильно реализовать эту задачку?
Требования к паролю:
1. Длинна от 8 до 20;
2. один символ;
3. одна буква верхнего регистра;
4. одна буква нижнего регистра;
5. одна цифра;
Далее сам код:
import re
def check_password(s): # функция принимает пароль в текстовом формате
if len(s) < 8:
return 'not valid'
elif len(s) > 20:
return 'not valid'
elif s == '':
return 'not valid'
else:
result = [
re.search(r"[a-zA-Z]", s),
re.search(r"[0-9]", s),
re.search(r"\AThe", s),
re.search(r"Spain\Z", s),
re.search(r"[+!@#$%^&*?]", s)
]
if all(result):
return 'valid'
else:
return 'not valid'
# далее примеры ввода данных
pint(check_password("")) # "not valid"
pint(check_password("password")) # "not valid"
pint(check_password("asd@12")) # "not valid"
pint(check_password("asd456q@Asw")) # "valid"
pint(check_password("asd456q@Aswasd456q@Aswasd456q@Aswasd456q@Asw") # "not valid"
pint(check_password("Asd#@1aWdsa123")) # "valid"