我在python中编写密码强度检查器,需要查看密码是否包含数字,小写字母和大写字母。只有1种类型较弱,2种类型为中等,所有三种类型都较强。
密码输入为password2,我创建了所有字母的数组(分别为低和高),0-9分别作为三个数组的字符串输入。
感谢任何帮助。 干杯, 詹姆斯
答案 0 :(得分:-1)
指向某个方向的简单方法。这样可以使用string
模块和内置any
和sum
函数等一些工具,以及在求bools
时输入强制类型:
from string import ascii_uppercase as u, ascii_lowercase as l, digits as d
def strength(password):
return sum(any(c in chars for c in password) for chars in (u, l, d))
>>> strength('abc')
1
>>> strength('abc123')
2
>>> strength('abcD123')
3
答案 1 :(得分:-1)
我不确定我是否理解正确
# s is password input
has_num = any(map(str.isalnum, s)) # True or False
has_lower = any(map(str.islower, s))
has_upper = any(map(str.isupper, s))
n_types = sum((has_num, has_lower, has_upper)) # type count