需求描述
写一个函数,它使用正则表达式,确保传入的口令字符串是强口令。强口令的定义是:长度不少于8个字符,同时包含大写和小写字符,至少有一位数字。你可能需要用多个正则表达式来测试该字符串,以保证它的强度。
需求分析
可以利用4个正则表达式是否可以匹配到密码中是否包含大写、小写、数字以及整个密码字符串的重复次数。如果4个条件全都符合,那么就符合要求,否则不符合,重新输入。
代码展示
import re,sys
#正则
upperRegex = re.compile(r'[A-Z]+')
lowerRegex = re.compile(r'[a-z]+')
numRegex = re.compile(r'd+')
lenRegex = re.compile(r'[wd]{8,}')
def stringPasscheck():
while True:
print('请输入一个密码,密码的要求长度大于等于8位,必须包含大小写字母和最少一个数字。')
inputPass = input('请输入密码(q:退出):')
if inputPass != 'q':
if upperRegex.search(inputPass) and lowerRegex.search(inputPass) and numRegex.search(inputPass) and lenRegex.search(inputPass):
print('密码符合强度要求。')
sys.exit(0)
else:
print('密码符合不强度要求,请重试。')
else:
break
if __name__ == '__main__':
stringPasscheck()