【Python 实战基础】如何检验用户输入密码的复杂度

目录

一、实战场景

二、主要知识点

三、菜鸟实战

1、创建 python 文件

2、运行结果


一、实战场景

密码强度检测规则: 

  • 1、至少包含一个数字
  • 2、至少包含一个大写字母
  • 3、长度至少 8 位

二、主要知识点

  • while 循环
  • 推导式
  • 列表 any 函数
  • 命令行 input 

三、菜鸟实战

马上安排!

1、创建 python 文件

'''
Author: 菜鸟实战
实战场景: 密码强度检测
'''

# 导入系统包
import platform

'''
# 密码强度检测规则
1 至少包含一个数字
2 至少包含一个大写字母
3 长度至少 8 位
'''

print("Hello,菜鸟实战")

while True:
    password = input("请输入待检测密码: ")

    # 推导式使用
    print("数字检测: ", [i.isdigit() for i in password])
    print("大写字母检测: ", [i.isupper() for i in password])
    print("密码长度: ", len(password))

    # 是否有数字, 推导式检测
    hasNumber = any([i.isdigit() for i in password])

    # 是否有大写字母, 推导式检测
    hasUpper = any([i.isupper() for i in password])

    if hasNumber and hasUpper and len(password) >= 8:
        print("密码符合规则, 检查通过")
        break
    else:
        print("密码校验未通过, 请重新输入")


print("版本", platform.python_version())

2、运行结果

Hello,菜鸟实战
请输入待检测密码: 123213
数字检测:  [True, True, True, True, True, True]
大写字母检测:  [False, False, False, False, False, False]
密码长度:  6
密码校验未通过, 请重新输入
请输入待检测密码: abc1234
数字检测:  [False, False, False, True, True, True, True]
大写字母检测:  [False, False, False, False, False, False, False]
密码长度:  7
密码校验未通过, 请重新输入
请输入待检测密码: Abc34567
数字检测:  [False, False, False, True, True, True, True, True]
大写字母检测:  [True, False, False, False, False, False, False, False]
密码长度:  8
密码符合规则, 检查通过
版本 3.10.4

 菜鸟实战,持续学习!

  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
你好,我是C知道。以下是我的回答: 可以使用以下方法来判断密码强度: 1. 密码度:密码度应该至少为8个字符。 2. 大小写字母数字和符号:密码应该包含小写字母数字和符号。 3. 避免常见密码密码不应该是常见的密码,如"123456"或"password"。 4. 避免个人信息:密码不应该包含个人信息,如生日或姓名。 以下是一个用Python编写的程序,可以判断密码强度: ```python def check_password_strength(password): # 判断密码度 if len(password) < 8: return "密码强度较弱,密码度应至少为8个字符。" # 判断是否包含小写字母数字和符号 has_uppercase = False has_lowercase = False has_digit = False has_symbol = False for char in password: if char.isupper(): has_uppercase = True elif char.islower(): has_lowercase = True elif char.isdigit(): has_digit = True else: has_symbol = True if not (has_uppercase and has_lowercase and has_digit and has_symbol): return "密码强度较弱,密码包含小写字母数字和符号。" # 判断是否为常见密码 common_passwords = ["123456", "password", "123456789", "12345678", "12345", "1234567", "1234567890", "qwerty", "abc123", "111111", "123123", "admin", "letmein", "welcome", "monkey", "login", "passw0rd", "starwars", "1234", "dragon", "football", "1234567898", "654321", "1234567899", "123321", "666666", "shadow", "master", "66666666", "qwertyuiop", "123456789a", "123456789b", "123456789c", "123456789d", "123456789e", "123456789f", "123456789g", "123456789h", "123456789i", "123456789j"] if password in common_passwords: return "密码强度较弱,密码为常见密码。" # 判断是否包含个人信息 if "birth" in password.lower() or "name" in password.lower(): return "密码强度较弱,密码包含个人信息。" # 密码强度较强 return "密码强度较强。" password = input("请输入密码:") print(check_password_strength(password)) ``` 希望这个程序能够帮助你判断密码强度。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟实战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值