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

Python字典暴力破解zip文件仅遍历26个词就停止问题求助

问题根因

你的代码存在遍历对象错误的问题:
在with open(wordlist, "rb") as list:代码块中,你写的循环是for word in tqdm(wordlist, total=total, unit="words"),这里传给tqdm遍历的wordlist是你定义的字典文件路径字符串"/home/drk/Desktop/list.txt",而非打开的字典文件句柄list。
遍历字符串时会逐个读取字符,该路径的字符长度刚好为26,所以程序跑完26次循环就直接结束,根本没有读取字典里的密码词条。


修复方法

把循环行的遍历对象替换为你打开的文件句柄即可,修改后代码段如下:

with open(wordlist, "rb") as fp:
    # tqdm传入文件句柄遍历字典内容,而非路径字符串
    for word in tqdm(fp, total=total, unit="words"):
        try:
            file.extractall(pwd=word.strip())
        except:
            continue
        else:
            print("[+] Password Found!: " + word.decode().strip())
            # 找到密码后主动退出,避免无意义遍历
            exit(0)
print("[-] None of the passwords did work. ")

补充优化建议

  • 不要用list作为变量名,这是Python内置类型的关键字,容易引发命名冲突,建议替换为fp、word_file这类含义更清晰的变量名
  • 空的except会捕获所有异常包括键盘中断等非密码错误的异常,建议明确捕获zipfile.BadZipFile、RuntimeError这类和密码验证错误相关的异常,方便后续调试
  • 字典使用完后建议主动调用file.close()关闭zip文件句柄,避免资源泄漏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 15:36:04