[Java] 找回 PDF 密碼

因為忘記當初設定銀行信用卡電子帳單的密碼了,只好自己嘗試看看有沒有辦法用程式蠻力找回來,但密碼的排列組合實在是太多了,只好先縮小到 8 位數字的組合,本來不抱太大希望,沒想到最後真的找回來了,雖然跑了超過 14 個小時。

package jia3;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Date;

import org.apache.pdfbox.pdmodel.PDDocument;

public class PdfPasswordCracking {

	public static void main(String[] args) {
		boolean flag = true;
		int count = 00000000;

		Path path = Paths.get("C:\\Users\\jtds7\\Downloads\\etatement.pdf");
		
		byte[] data = null;
		
		try {
			data = Files.readAllBytes(path);
		} catch (IOException e) {
			e.printStackTrace();
			System.exit(0);
		}	
		
		System.out.println(new Date());

		while (flag) {

			flag = false;

			count++;

			if (count % 1000000 == 0)
				System.out.println(new Date() + "\t" + count);

			String password = String.format("%08d", count);

			if (password.length() > 8) {
				System.out.println(password);
				break;
			}

			try {
				PDDocument pdd = PDDocument.load(f, password);
			} catch (IOException e) {
				flag = true;
			}

			if (!flag) {
				System.out.println("password:" + password);
			}
		}
	}
}

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *