3 个不稳定版本

0.8.1 2024 年 8 月 3 日
0.8.0 2024 年 5 月 24 日
0.5.1 2023 年 1 月 12 日

#138命令行界面

Download history 1/week @ 2024-04-29 132/week @ 2024-05-20 15/week @ 2024-05-27 16/week @ 2024-06-03 13/week @ 2024-06-10 7/week @ 2024-06-17 7/week @ 2024-07-01 2/week @ 2024-07-08 123/week @ 2024-07-29 25/week @ 2024-08-05

148 次月下载

Apache-2.0

96KB
1K SLoC

zip-password-finder

Build Crates.io

zip-password-finder 是一个用于查找受保护 ZIP 文件密码的工具。

该工具的设计在以下博客文章中有详细描述

功能

  • 支持 ZipCrypto 和 AES 加密。
  • 利用多线程加快处理速度
  • 字典攻击,从字典文本文件(每行一个单词)测试密码
  • 暴力破解,为给定的字符集和密码长度范围生成所有密码

密码生成中可用的字符集有

  l | abcdefghijklmnopqrstuvwxyz [a-z]
  u | ABCDEFGHIJKLMNOPQRSTUVWXYZ [A-Z]
  d | 0123456789                 [0-9]
  h | 0123456789abcdef           [0-9a-f]
  H | 0123456789ABCDEF           [0-9A-F]
  s | «space»!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

安装

版本

使用提供的二进制文件,请访问 https://github.com/agourlay/zip-password-finder/releases

Crates.io

通过 crates.io 使用 Cargo。

cargo install zip-password-finder

AUR

您可以使用 AUR 帮助程序从 AUR 安装 zip-password-finder。例如

paru -S zip-password-finder

使用方法

./zip-password-finder -h
Find the password of protected ZIP files

Usage: zip-password-finder [OPTIONS] --inputFile <inputFile>

Options:
  -i, --inputFile <inputFile>
          path to zip input file
  -w, --workers <workers>
          number of workers
  -p, --passwordDictionary <passwordDictionary>
          path to a password dictionary file
  -c, --charset <charset>
          charset to use to generate password [default: lud] [possible values: l, u, d, h, H, s]
      --minPasswordLen <minPasswordLen>
          minimum password length [default: 1]
      --maxPasswordLen <maxPasswordLen>
          maximum password length [default: 10]
      --fileNumber <fileNumber>
          file number in the zip archive [default: 0]
  -h, --help
          Print help
  -V, --version
          Print version

性能

对于 AES,请确保使用具有 SHA 指令的 CPU(Intel Sandy Bridge 或更高版本,AMD Bulldozer 或更高版本)以获得最佳性能。

本地构建通常性能更好。

RUSTFLAGS="-C target-cpu=native" cargobuild --release

通常,随着工作进程数量的增加,该工具似乎会遭受竞争,这使得它对于非平凡密码来说不太实用。

使用与物理核心数量相等的工作进程数量是有意义的。

例如,使用具有 8 个核心和 16 个线程的 CPU 的可扩展性,随着工作进程数量的增加

scalability example

依赖项

~9–19MB
~215K SLoC