zipパスワードのロックを解除します

忘れられたパスワード

パスワードを「部分的に」忘れることが一般的です。 e。他の人を忘れながら、その一部のキャラクターを覚えておいてください。 Aspose.Zip APIでは、このような半分忘れられたパスワードで再生して、アーカイブのロックを解除できます。この記事は、AES暗号化されたZIPアーカイブの復号化パスワードを推測することを示しています。

パスワードテンプレートの識別

パスワードが「T0p $ ecret」シンボルに続いて、Capital English Letterと2桁で始まるとしましょう。したがって、このようなテンプレートを説明できます。

1string template = "t0p $ ecret {0} {1}";
元プレースホルダーがCapital English Letterを対象としている場合、後者は2桁の数字です。

単一のパスワードの検証

この単純な復号化コード

1archiveloadoptions options = new archiveloadoptions();
2options.setDecryptionPassWord(パスワード);
3try(アーカイブa = new Archive( "necrypted.zip"options))
4    A.ExtractTodirectory( "。");
間違ったパスワードが提供されている場合、 invaliddataexceptionを上げます。

アーカイブへのブルートフォース攻撃

したがって、パスワードを1つずつ作成してテストします。成功プログラムがある場合、プログラムは適切なパスワードをコンソールに印刷します。

 1string template = "t0p $ ecret {0} {1}";
 2for(char c = 'a'; c <'z'; c ++)
 3{
 4    boolean recort = false;
 5    for(int i = 10; i <99; i ++)
 6    {
 7        文字列パスワード= messageformat.format(templateci);
 8        archiveloadoptions options = new archiveloadoptions();
 9        options.setDecryptionPassWord(パスワード);
10        try(アーカイブa = new Archive( "necrypted.zip"options)){
11            A.ExtractTodirectory( "。");
12            正しい= true;
13        }
14        catch(invaliddataexception e)
15        {
16            正しい= false;
17        }
18
19        if (correct)
20        {
21            System.out.println("Proper password: " + password);
22            break;
23        }
24    }
25
26    if (correct)
27        break;
28}
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.