1

问题在这里说明:

在 /tmp/alien-zip-2092.zip 中找到的示例 Alien Zip 文件受密码保护。我们已经确定他们使用的是数字三位数代码。蛮力将 Zip 文件解压缩到 /tmp

注意:如果发生这种情况,脚本可能会超时,请尝试缩小搜索范围

我的代码如下:

import zipfile
import itertools

digits = '0123456789'

for c in itertools.product(digits, repeat=3):
  password = ''.join(c)
  try:
    with zipfile.ZipFile('/tmp/alien-sample-42.zip', 'r') as zip_ref:
      zip_ref.extractall(path='/tmp', pwd = bytes(password, 'utf-8'))
      break
  except:
    print('Password ' + password + ' failed')

当我提交此代码时,它列出了所有三位数字组合,但它们都没有提取文件。

4

1 回答 1

4

你有错误的文件......这是正确的代码(对于仍然需要它的人)

import zipfile
import itertools

digits = '0123456789'

for c in itertools.product(digits, repeat=3):
  password = ''.join(c)
  try:
    with zipfile.ZipFile('/tmp/alien-zip-2092.zip', 'r') as zip_ref:
      zip_ref.extractall(path='/tmp', pwd = bytes(password, 'utf-8'))
      break
  except:
    print('Password ' + password + ' failed')
    
pwd = bytes(password, 'utf-8')
于 2022-01-29T15:04:57.787 回答