Bootstrap

python 校验密码强度

在我们的日常生活中,密码的安全性是非常重要的。无论是我们的电子邮件账户,社交媒体账户,还是银行账户,都需要一个强大的密码来保护。在这篇文章中,我将向你展示如何使用 Python 来检查密码的强度。

代码解析

首先,我们需要导入 string 库。

import string

然后,我们定义一个函数 check_password_strength(password),该函数接受一个参数 password,表示需要检查的密码。

def check_password_strength(password):
    # 弱密码:长度小于6,或者只包含字母
    if len(password) < 6 or all(char in string.ascii_letters for char in password):
        return "弱密码"
    # 中等密码:长度在6到8之间,包含字母和数字
    elif 6 <= len(password) < 8 and any(char.isdigit() for char in password):
        return "中等密码"
    # 强密码:长度大于等于8,包含字母、数字和标点符号
    elif len(password) >= 8 and any(char.isdigit() for char in password) and any(char in string.punctuation for char in password):
        return "强密码"
    else:
        return "密码强度未知"

在这个函数中,我们根据密码的长度和包含的字符类型来判断密码的强度:

  • 如果密码长度小于6,或者密码只包含字母,则认为是弱密码;
  • 如果密码长度在6到8之间,并且包含字母和数字,则认为是中等密码;
  • 如果密码长度大于等于8,并且包含字母、数字和标点符号,则认为是强密码。

接下来,我们可以测试一下这个函数:

while True:
    password = input("请输入你的密码(输入'q'退出):")
    if password.lower() == 'q':
        break
    print(check_password_strength(password))

运行结果如下

这段代码会不断地提示用户输入密码,然后打印出密码的强度。当用户输入 ‘q’ 时,程序会退出。

完整代码如下

import string

def check_password_strength(password):
    # 弱密码:长度小于6,或者只包含字母
    if len(password) < 6 or all(char in string.ascii_letters for char in password):
        return "弱密码"
    # 中等密码:长度在6到8之间,包含字母和数字
    elif 6 <= len(password) < 8 and any(char.isdigit() for char in password):
        return "中等密码"
    # 强密码:长度大于等于8,包含字母、数字和标点符号
    elif len(password) >= 8 and any(char.isdigit() for char in password) and any(char in string.punctuation for char in password):
        return "强密码"
    else:
        return "密码强度未知"

# 测试
while True:
    password = input("请输入你的密码(输入'q'退出):")
    if password.lower() == 'q':
        break
    print(check_password_strength(password))

结论

通过这个简单的 Python 脚本,我们可以轻松地检查密码的强度。这对于保护我们的在线账户的安全性非常有帮助。希望你喜欢这篇文章,如果你有任何问题或建议,欢迎在下面留言。

;