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

简化三位字母暴力破解程序并实现整串密码一次性输入功能

三位密码暴力破解程序优化方案

方案1:修改函数支持直接传入完整三位密码

直接将函数入参改为单个字符串类型,Python的字符串本身支持下标索引取单个字符,无需额外转列表拆分,修改后代码如下:

def bruteforce(pw_str):
    # 先做输入合法性校验
    if len(pw_str) != 3 or not pw_str.isalpha():
        print("请输入合法的三位字母密码")
        return
    test1 = 64
    pwo1 = ord(pw_str[0])
    test2 = 64
    pwo2 = ord(pw_str[1])
    test3 = 64
    pwo3 = ord(pw_str[2])

    while(test1 != pwo1):
        test1 += 1
    while(test2 != pwo2):
        test2 += 1
    while(test3 != pwo3):
        test3 += 1

    print("The password is " + chr(pwo1) + chr(pwo2) + chr(pwo3))

调用示例:

bruteforce("ABC")

方案2:不改动原有函数,调用时参数解包

如果你需要保留原有三个参数的函数逻辑,可使用Python的参数解包语法实现传参:

# 原有函数无需修改
def bruteforce(pw1, pw2, pw3):
    test1 = 64
    pwo1 = ord(pw1)
    test2 = 64
    pwo2 = ord(pw2)
    test3 = 64
    pwo3 = ord(pw3)

    while(test1 != pwo1):
        test1 += 1
    while(test2 != pwo2):
        test2 += 1
    while(test3 != pwo3):
        test3 += 1
    
    print("The password is " + chr(pwo1) + chr(pwo2) + chr(pwo3))

# 调用时输入完整密码,解包为三个参数
full_pw = input("请输入三位密码:").strip()
if len(full_pw) == 3:
    bruteforce(*full_pw)
else:
    print("请输入三位长度的密码")

在可迭代对象(字符串、列表等)前加*符号,会自动将元素按顺序拆分为独立位置参数,刚好匹配原有函数的三个入参要求。

逻辑优化建议(可选)

当前代码中的while循环仅将test变量自增到与目标ASCII码相等,最终输出的仍是直接传入的原始密码,未实现真实的暴力枚举破解效果。如果需要实现完整的暴力破解逻辑,可遍历所有三位字母组合与目标对比,示例实现如下:

import itertools
import string

def bruteforce(target_pw):
    # 枚举所有三位大写字母组合,如需支持小写可替换为string.ascii_letters
    for combo in itertools.product(string.ascii_uppercase, repeat=3):
        attempt = ''.join(combo)
        if attempt == target_pw:
            print(f"The password is {attempt}")
            return

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

相关产品推荐
方舟 Agent Plan

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

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