本文共 2130 字,大约阅读时间需要 7 分钟。
在QQ账号密码设置时,我们常常会遇到密码设置难度大的情况,尤其是高强度密码的设置,往往让人感到困惑。为了更好地理解密码强度设置的原理,以下将详细介绍如何编写一个判断密码强度的程序。
密码强度的判断通常需要满足以下几个基本要求:
基于以上要求,我们可以将开发分为以下几个步骤:
def check_number(password): for c in password: if c.isnumeric(): return True return None
def check_letter(password): for c in password: if 'a' <= c <= 'z' or 'A' <= c <= 'Z': return True return None
def check_mark(password): for c in password: if not (c.isnumeric() or 'a' <= c <= 'z' or 'A' <= c <= 'Z'): return True return None
def check_legal(password): if len(password) < 8 or len(password) > 16: print('长度需为8-16个字符,请重新输入。') return False for c in password: if ord(c) >= 0x4e00 or ord(c) == 0x20: print('不能使用空格、中文,请重新输入。') return False key = 0 key += 1 if check_number(password) else 0 key += 1 if check_letter(password) else 0 key += 1 if check_mark(password) else 0 if key >= 2: return True else: print('至少含数字/字母/字符2种组合,请重新输入。') return False def main(): while True: password = input('请输入密码:') if check_legal(password): strength_level = 0 strength_level += 1 if check_number(password) else 0 strength_level += 1 if check_letter(password) else 0 strength_level += 1 if check_mark(password) else 0 if strength_level == 2: print('密码设置成功!' + '*'*10 + '强度等级中' + '*'*10) break else: print('密码设置成功!' + '*'*10 + '强度等级高' + '*'*10) break else: continue 运行以上程序时,用户将被引导输入密码,程序将自动判断密码的强度,并给出相应的提示。例如:
请输入密码:12345678Ab!@#$密码设置成功!*********强度等级中*********
或者
请输入密码:12345678aB?1密码设置成功!*********强度等级高*********
以上代码可以根据实际需求进行修改和完善,用于更精准地判断密码强度。
转载地址:http://wigp.baihongyu.com/