dotnetzip または Sharpziplib を使用してパスワードで保護されたファイルを解凍する方法 (パスワードがわからない場合)。
3 に答える
GPL-3 zip パスワード解読コード: http://oldhome.schmorp.de/marc/fcrackzip.html
Ubuntu 提供のパッケージを使用すると、提供されたサンプル .zip ファイルのパスワードをマシンでクラックするのに 19 秒かかりました (README に記載されています)。
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++ でそれを行うと思います。
とんでもない。パスワードが必要です。パスワードを覚えているか、それを知っている人が必要です。または、パスワード回復ツールが必要です。これは、Web のダークサイドのどこかに存在する必要があります。