You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python安全密码校验程序错误排查及功能实现咨询

原代码问题梳理

  • 子串校验逻辑不完整:仅能匹配全小写的umgc,无法覆盖大小写组合的场景,且写法'u''m''g''c'不规范
  • 长度校验逻辑错误:没有调用len(password)获取密码实际长度,长度阈值规则和需求完全不符
  • 缺失#符号相关的所有校验逻辑
  • 存在语法错误:else password[0:3])是无效代码,没有对应判断逻辑

修正后完整代码

# 可自行修改最小、最大允许密码长度
MIN_PWD_LEN = 8
MAX_PWD_LEN = 20

password = input("请输入候选密码:").strip()
valid = True
error_msg = []

# 校验长度规则
pwd_length = len(password)
if pwd_length < MIN_PWD_LEN or pwd_length > MAX_PWD_LEN:
    valid = False
    error_msg.append(f"密码长度需在{MIN_PWD_LEN}到{MAX_PWD_LEN}字符之间")

# 校验不含任意大小写组合的umgc子串
if "umgc" in password.lower():
    valid = False
    error_msg.append("密码不能包含任意大小写组合的子串umgc")

# 校验#符号规则
if "#" not in password:
    valid = False
    error_msg.append("密码必须包含#符号")
else:
    if password[0] == "#" or password[-1] == "#":
        valid = False
        error_msg.append("#符号不能出现在密码的首位或末位")

# 输出结果
if valid:
    print("密码有效")
else:
    print("密码无效,具体原因:")
    for msg in error_msg:
        print(f"- {msg}")

逻辑说明

  • 开头定义的最小、最大长度常量可根据需求自由调整,满足自定义长度阈值的要求
  • 所有校验规则依次执行,会收集全部不符合项后统一输出,无需用户多次试错
  • 将密码统一转为小写后检查是否包含umgc,可覆盖所有大小写组合的场景
  • 完整实现#符号的存在性校验、首尾位置校验,完全匹配需求规则

内容的提问来源于stack exchange,提问作者Kayla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 07:24:03