Hello
every one, unfortunately I forget password for one of my pdf document so I want
to get the password somehow. I used simple Brute-Force technique to get the
password.
To
explain, I am considering below assumptions.
1.
Password is of length 8 (Since 8 is my lucky numberJ).
2.
Password contains only numbers
This
program took approximately 32 minutes to retrieve password. One thing I would
like to tell you, below program used simple Brute-Force technique, so it may
take days to break password for your pdf document (which contains alpha numeric
characters and special symbols, Upper case and lowers case letters).
import org.apache.pdfbox.pdmodel.PDDocument; import org.paukov.combinatorics.Factory; import org.paukov.combinatorics.Generator; import org.paukov.combinatorics.ICombinatoricsVector; import java.util.*; public class PDFUnlock { static int passwordLength = 8; public static String getPassword(PDDocument document){ // Create the initial vector of all digits ICombinatoricsVector<Integer> originalVector = Factory.createVector(new Integer[]{0,1,2,3,4,5,6,7,8,9}); // Create the permutation generator by calling the appropriate method in the Factory class Generator<Integer> gen = Factory.createPermutationWithRepetitionGenerator(originalVector, 8); System.out.println("Total permutations : " + gen.getNumberOfGeneratedObjects()); // Try for each permutation for (ICombinatoricsVector<Integer> perm : gen) { List<Integer> list = perm.getVector(); StringBuilder s = new StringBuilder(""); for(int i : list){ s.append(i); } boolean flag; try{ flag = true; document.decrypt(s.toString()); } catch(Exception e){ flag = false; } if(flag == true){ return s.toString(); } } return null; } public static void main(String args[]) throws Exception { PDDocument document = PDDocument.load("E:\\hari\\im_ptr.pdf"); long time1 = System.currentTimeMillis(); System.out.println(getPassword(document)); long time2 = System.currentTimeMillis(); System.out.println("Total time taken is " + (time2-time1) + " Milliseconds"); } }
No comments:
Post a Comment