summaryrefslogtreecommitdiff
path: root/Chapter13PracBruteForcePDF.py
blob: 14af439e32c8d32ec9536e61bb91f1902f3d1d59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#! /usr/bin/env python3

# Chapter 13 Practice Brute-Force PDF Password Breaker
# USAGE: Change the pdfFile varible below and run the script to try 44,000 English words
#           from the dictionary.txt file to decrypt the encrypted PDF.

import PyPDF2

pdfFile = open('bruteForce.pdf', 'rb') #Change this file name and location
pdfReader = PyPDF2.PdfFileReader(pdfFile)

dictionaryFile = open('dictionary.txt')
passwordList = dictionaryFile.readlines()

for word in range(len(passwordList)):
    passWord = passwordList[word].strip()
    passWorkedUpper = pdfReader.decrypt(passWord.upper())
    if passWorkedUpper == 1:
        print('The password is: ' + passWord.upper())
        break
    else:
        print(passWord.upper() + ' did NOT work...')
    passWorkedLower = pdfReader.decrypt(passWord.lower())
    if passWorkedLower == 1:
        print('The password is: ' + passWord.lower())
        break
    else:
        print(passWord.lower() + ' did NOT work...') 

dictionaryFile.close()
pdfFile.close()