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

Python暴力破解脚本问题:如何匹配目标结果并输出两位数字?

解决你的Python暴力破解脚本问题

我来帮你搞定这两个困扰你的问题:循环无法终止,以及数字无法按两位格式输出的问题。

问题1:循环无法终止的原因

你原来的代码里,p和a是固定的字符串常量,not(p)其实是判断字符串是否为空——显然"Wrong!"和"Try again."都不是空字符串,所以if not(p) and not(a)这个条件永远为False,循环自然不会停止。

正确的逻辑应该是:每次尝试密码后,获取真实的验证返回结果,再判断这个结果是否既不是"Wrong!"也不是"Try again.",如果是,就终止循环并输出正确密码。

问题2:两位数字格式输出

要让数字以两位格式(比如00、01)输出,Python有几种简单的方式:

  • 使用f-string格式化:f"{i:02d}",其中02d表示将整数格式化为两位,不足两位时用前导零填充
  • 使用zfill()方法:str(i).zfill(2),会自动在字符串开头补零到指定长度

修正后的完整代码

这里我模拟了一个密码验证的函数,你可以把它替换成你实际获取返回结果的逻辑(比如调用接口、读取程序输出等):

# 模拟密码验证的函数,替换成你实际的验证逻辑
def get_verification_result(password):
    # 示例:假设正确密码是42
    if password == 42:
        return "Access Granted!"  # 你的目标未知结果
    elif password < 42:
        return "Try again."
    else:
        return "Wrong!"

# 定义需要排除的结果
exclude_results = {"Wrong!", "Try again."}

for i in range(0, 100):
    # 格式化密码为两位数字格式
    formatted_pwd = f"{i:02d}"
    print(f"SuperPassword {formatted_pwd}")
    
    # 获取当前密码的验证结果
    current_result = get_verification_result(i)
    
    # 判断是否匹配到目标结果
    if current_result not in exclude_results:
        print(f"找到目标结果!正确密码:{formatted_pwd},返回结果:{current_result}")
        break

代码说明

  1. 验证逻辑替换:你需要把get_verification_result函数里的内容,换成你实际获取返回结果的代码(比如调用某个API、执行命令并捕获输出等)
  2. 格式处理:f"{i:02d}"确保数字以两位格式输出,比如0变成00,9变成09
  3. 终止条件:每次循环检查返回结果是否不在排除列表中,一旦匹配到目标结果,就打印信息并终止循环

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 17:02:41