우편번호 잠금해제

비밀번호를 잊어버렸습니다

비밀번호를 “부분적으로” 잊어버리는 것이 일반적입니다. 이자형. 다른 문자는 잊어버리고 일부 문자만 기억하십시오. Aspose.ZIP API를 사용하면 반쯤 잊어버린 비밀번호로 아카이브 잠금을 해제할 수 있습니다. 이 기사에서는 AES로 암호화된 zip 아카이브의 암호 해독 비밀번호를 추측하는 방법을 보여줍니다.

비밀번호 템플릿 식별

비밀번호가 “T0p$ecret” 기호로 시작하고 그 뒤에 영문 대문자와 두 자리 숫자가 이어진다고 가정해 보겠습니다. 따라서 템플릿을 다음과 같이 설명할 수 있습니다.

1string template = "T0p$ecret{0}{1}";

여기서 이전 자리 표시자는 영어 대문자이고, 후자는 두 자리 숫자입니다.

단일 비밀번호 확인 중

이 간단한 복호화 코드는

1 using (var a = new Archive("encrypted.zip", new ArchiveLoadOptions() {DecryptionPassword = password}))
2    a.ExtractToDirectory(".");

잘못된 비밀번호가 제공되면 InvalidDataException이 발생합니다.

아카이브에 대한 무차별 공격

따라서 비밀번호를 하나씩 작성하고 테스트하세요. 성공하면 프로그램은 적절한 비밀번호를 콘솔에 인쇄합니다.

 1    string template = "T0p$ecret{0}{1}";
 2    for (char c = 'A'; c < 'Z'; c++)
 3    {
 4        bool correct = false;
 5        for (int i = 10; i < 99; i++)
 6        {
 7            string password = string.Format(template, c, i);
 8            try
 9            {
10                using (Archive a = new Archive("encrypted.zip", new ArchiveLoadOptions() {DecryptionPassword = password}))
11                a.ExtractToDirectory(".");
12                correct = true;
13            }
14            catch (System.IO.InvalidDataException e)
15            {
16                correct = false;
17            }
18    
19            if (correct)
20            {
21                Console.WriteLine($"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.