4

dotnetzip または Sharpziplib を使用してパスワードで保護されたファイルを解凍する方法 (パスワードがわからない場合)。

4

3 に答える 3

8

GPL-3 zip パスワード解読コード: http://oldhome.schmorp.de/marc/fcrackzip.html

Ubuntu 提供のパッケージを使用すると、提供されたサンプル .zip ファイルのパスワードをマシンでクラックするのに 19 秒かかりました (README に記載されています)。

于 2010-07-06T11:29:56.597 に答える
7

zip ファイル形式のパスワードは、圧縮ファイルのエントリ データに適用されます。つまり、zip ファイルのパスワードは 1 つではありません。zip ファイルには N 個の zip エントリがあり、それぞれに個別のパスワードを設定することも、パスワードをまったく設定しないこともできます。すべてのエントリに同じパスワードを使用する zip ファイルを取得する場合がありますが、これは仕様で要求されておらず、DotNetZip で強制されていません。

DotNetZip を使用すると、zip ファイルの「中央ディレクトリ」を暗黙的に読み取って、パスワードを使用せずに、zip ファイル内のファイル (またはエントリ) のリストを取得できます。繰り返しますが、パスワードは zip ファイル自体ではなく、zip エントリに適用されることに注意してください。

したがって、次のようなものです。

using (var zip = ZipFile.Read("myzip.zip")) {
  foreach (var e in zip.Entries) {
    System.Console.WriteLine("Entry: {0}", e.FileName);
  }
}

... エントリのいずれかがパスワードで保護されているかどうかに関係なく、zip ファイル内のエントリの名前のリストを出力します。

パスワードで保護されたエントリのパスワードを「クラック」したい場合は、 を繰り返し呼び出すことができますZipEntry.ExtractWithPassword(password)。パスワードが正しくない場合、例外がスローされます。

zip の解読に真剣に取り組んでいるなら、もっとスマートなアルゴリズムを使用して、C または C++ でそれを行うと思います。

于 2010-11-08T02:37:29.110 に答える
3

とんでもない。パスワードが必要です。パスワードを覚えているか、それを知っている人が必要です。または、パスワード回復ツールが必要です。これは、Web のダークサイドのどこかに存在する必要があります。

于 2010-07-06T11:23:36.393 に答える