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

Python密码验证与加密程序开发问题排查求助

代码问题排查
  • 布尔值拼写错误:Python 中布尔真值、假值为大写的True、False,代码中全部写成了小写的true/false,会直接触发名称错误。
  • 未定义变量+方法调用逻辑错误:大小写、数字校验函数中的i没有被定义,且isupper()/islower()/isdigit()是字符对象的成员方法,正确用法是字符.isupper(),不是传入参数调用。
  • 特殊字符校验逻辑完全颠倒:先调用了不存在的special_char()函数,才定义特殊字符列表,且列表名拼写错误为specical_char,没有遍历密码判断是否包含指定特殊字符的逻辑。
  • 加密函数逻辑无效:encrypt函数中两行赋值直接抵消,没有遍历密码字符做ASCII偏移处理的逻辑,完全无法实现加密功能。
  • 主流程逻辑混乱:用户输入代码放在了main()函数执行之后,main()调用password_check时传入的password是未定义变量,password_check本身也没有调用内部各校验规则、汇总校验结果的逻辑,没有返回值。
  • 冗余无效代码:末尾存在空print调用,没有任何作用。
修复后的完整实现

以下实现了「先校验密码合规性(长度≥8、包含大写、小写、数字、指定特殊字符),校验通过后执行ASCII偏移+1加密输出」的需求:

def password_check(password):
    # 密码长度≥8校验
    def length_test(password):
        return len(password) >= 8

    # 大写字母校验
    def uppercase_test(password):
        return any(char.isupper() for char in password)

    # 小写字母校验
    def lowercase_test(password):
        return any(char.islower() for char in password)

    # 数字校验
    def digit_test(password):
        return any(char.isdigit() for char in password)

    # 特殊字符校验
    def special_character_test(password):
        special_char = ["$", "@", "#", "%", "*"]
        return any(char in special_char for char in password)

    # 汇总所有校验规则
    all_tests = [
        length_test(password),
        uppercase_test(password),
        lowercase_test(password),
        digit_test(password),
        special_character_test(password)
    ]
    return all(all_tests)

def encrypt(password):
    # 简单加密:每个字符ASCII码偏移+1
    encrypted = []
    for char in password:
        encrypted.append(chr(ord(char) + 1))
    return ''.join(encrypted)

def main():
    user_input = input("请输入要设置的密码:")
    if password_check(user_input):
        encrypted_pwd = encrypt(user_input)
        print(f"密码校验通过,加密后结果为:{encrypted_pwd}")
    else:
        print("密码校验不通过:需同时满足长度≥8、包含大写字母、小写字母、数字、特殊字符($@#%*)")

if __name__ == "__main__":
    main()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:06:04