Python条件密码程序
我正在编写一个简单的条件密码检查器脚本,条件如下:Python条件密码程序,python,string,input,passwords,Python,String,Input,Passwords,我正在编写一个简单的条件密码检查器脚本,条件如下: >8个字符 8 def短传(密码): '密码不能超过24个字符' 返回len(密码)1 def upperPass(密码): '密码必须至少包含两个大写字母' 返回len(set(string.ascii_大写)。交叉点(password))>1 def numPass(密码): '密码必须至少包含两位数字' 返回len(设置(字符串.数字).交叉点(密码))>1 def specPass(密码): '密码不能包含任何特殊字符' 返回len(
- >8个字符
- <24个字符
- 没有特殊字符
- 至少两个大写字母
- 至少两个小写字母
- 至少两位数
导入字符串
def长传球(密码):
'密码必须至少为8个字符'
返回len(密码)>8
def短传(密码):
'密码不能超过24个字符'
返回len(密码)<24
def lowerPass(密码):
'密码必须至少包含两个小写字母'
返回len(set(string.ascii_小写)。交叉点(密码))>1
def upperPass(密码):
'密码必须至少包含两个大写字母'
返回len(set(string.ascii_大写)。交叉点(password))>1
def numPass(密码):
'密码必须至少包含两位数字'
返回len(设置(字符串.数字).交叉点(密码))>1
def specPass(密码):
'密码不能包含任何特殊字符'
返回len(set(字符串.标点符号).交叉点(密码))<1
def test_密码(密码,测试=[longPass,shortPass,lowerPass,upperPass,numPass,specPass]):
对于测试中的测试:
如果没有测试(密码):
打印(测试文件)
返回错误
返回真值
def main():
密码=输入('请输入要检查的密码:')
如果测试密码(密码):
打印('有效密码!')
如果名称=“\uuuuu main\uuuuuuuu”:
main()
这是因为如果它包含两个“F”,那么该集合将只包含其中一个。按照现在的实现,您需要至少两个不同的大写字符
尝试简单地计算匹配字符,而不是设置交叉点
这将对大写字符进行正确计数,例如:
sum(x.isupper()表示密码中的x)
谢谢!这正是我想要的。
import string
def longPass(password):
'Password must be at least 8 characters'
return len(password) > 8
def shortPass(password):
'Password cannot be more than 24 characters'
return len(password) < 24
def lowerPass(password):
'Password must contain at least two lowercase letters'
return len(set(string.ascii_lowercase).intersection(password)) > 1
def upperPass(password):
'Password must contain at least two uppercase letters'
return len(set(string.ascii_uppercase).intersection(password)) > 1
def numPass(password):
'Password must contain at least two digits'
return len(set(string.digits).intersection(password)) > 1
def specPass(password):
'Password must not contain any special characters'
return len(set(string.punctuation).intersection(password)) < 1
def test_password(password, tests=[longPass, shortPass, lowerPass, upperPass, numPass, specPass]):
for test in tests:
if not test(password):
print(test.__doc__)
return False
return True
def main():
password = input('Please enter a password to be checked: ')
if test_password(password):
print('Valid password!')
if __name__=="__main__":
main()