1.判断密码强度版本1
"""
作者:king
版本:0.1
时间:2019/04/17
"""
def check_number_exist(password_str):
"""
判断密码是否含有数字
"""
for c in password_str:
if c.isnumeric():
return True
return False
def check_letter_exist(password_str):
"""
判断密码是否含有字母
"""
for c in password_str:
if c.isalpha():
return True
return False
def main():
"""
主函数
"""
password = input('请输入密码:')
#密码强度,初始化为0
strength_level = 0
#规则1:密码长度大于8
if len(password) >= 8:
strength_level += 1
else:
print('密码强度要求至少8位')
#规则2:密码必须包含数字
if check_number_exist(password):
strength_level += 1
else:
print('密码要求包含数字')
#规则3:密码必须包含字母
if check_letter_exist(password):
strength_level += 1
else:
print('密码要求包含字母')
if __name__ == '__main__':
main()
判断密码强度,版本2
"""
作者:king
版本:0.2
时间:2019/04/17
功能:1.密码长度为8
2.密码含有数字
3.密码含有字母
2.0增加的功能,限制密码的设置次数,循环终止
"""
def check_number_exist(password_str):
"""
判断密码是否含有数字
"""
has_number = False
for c in password_str:
if c.isnumeric():
has_number = True
break
return has_number
def check_letter_exist(password_str):
"""
判断密码是否含有字母
"""
has_letter = False
for c in password_str:
if c.isalpha():
has_letter = True
break
return has_letter
def main():
"""
主函数
"""
try_time = 5
while try_time > 0:
password = input('请输入密码:')
# 密码强度,初始化为0
strength_level = 0
# 规则1:密码长度大于8
if len(password) >= 8:
strength_level += 1
else:
print('密码强度要求至少8位')
# 规则2:密码必须包含数字
if check_number_exist(password):
strength_level += 1
else:
print('密码要求包含数字')
# 规则3:密码必须包含字母
if check_letter_exist(password):
strength_level += 1
else:
print('密码要求包含字母')
if strength_level == 3:
print ('恭喜密码强度合格')
break
else:
print('抱歉,你的密码不符合要求')
try_time -= 1
print()
if try_time <= 0:
print('尝试密码次数过多,密码设置失败,请一个小时再设置')
if __name__ == '__main__':
main()