【问题标题】:extract a zip file with digit code password in python在python中提取带有数字代码密码的zip文件
【发布时间】:2019-03-24 21:59:54
【问题描述】:

我正在挑战,结果出现了:我们已经开始组织文件以尝试理解它们,但它们都被一个数字三位数的密码锁定。看看你是否可以编写一个脚本来进入这个示例文件 alien-zip-2092.zip 并读取我们认为在其中命名的文本文件,无论 zip 是什么(所以在本例中是 alien-zip-2092.txt)。哦,对了,文件应该解压到/tmp/目录下。

将文件解压到 /tmp/ 目录以获取标志。确保在输入正确密码时跳出循环,否则您将使用同名的空白文件覆盖正确的文件。

import zipfile as zip
filename = "file alien-zip-2092.zip"
zip.filename.extractall(psw=111)

这就是我所做的,但没有工作,我认为还有另一种方法。

【问题讨论】:

  • zip.filename.extractall(psw="111") 已经更好了。密码是字符串,不是数字
  • 你不可能从这篇文章中得到任何好的答案,因为它是目前写的; 看起来您要问的问题是“我如何才能战胜这个编码挑战?”,而这反过来又可能被视为作弊。为了获得更好的帮助,您需要针对您遇到的问题提出更集中的问题;请参阅How To Ask 上的站点帮助页面。特别是,如果可以的话,请在此处说明什么不起作用(神秘的错误消息?文件不可读?不知道如何检测提取何时成功/失败?)。

标签: python zip


【解决方案1】:

您应该像这样使用zipfile 模块:

from zipfile import ZipFile
ZipFile('alien-zip-2092.zip').extractall(path='/tmp', pwd='111')

【讨论】:

  • 我明白了。您可以尝试将path 作为关键字参数吗?我已经相应地更新了我的答案。
【解决方案2】:
import zipfile
Z = zipfile.ZipFile("alien-zip-2092.zip")
PASS = bytes("111", 'utf-8')
Z.extractall(pwd=PASS)

【讨论】:

  • 不起作用 忘记我写的代码并更多地关注这个问题,因为我认为我没有任何意义
  • “不起作用”是什么意思?它在 Python 3.6 下可以正常工作。你得到什么错误?
  • 错误说 PASS = bytes("111", 'utf-8') TypeError: str() 最多接受 1 个参数(给定 2 个)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-25
相关资源
最近更新 更多