Python 3 - Как перебрать пароль для файла PDF, используя все возможные 6-ди git идентификаторы сотрудника? - PullRequest
0 голосов
/ 02 апреля 2020

Я практикую генерацию всех возможных 6-ди git идентификаторов сотрудников (все имеют 900 в начале, за которыми следуют все возможные 6-ди git номера), чтобы перебор пароля для файла PDF с именем PS7_encrypted.pdf. До сих пор я успешно сгенерировал все 6-ди git пины (с 900 спереди) и сохранил их в файле dictionary.txt. Я работаю над программой, которая будет читать файл и перебирать PDF, используя тот текстовый файл, который имеет все возможные числа. Однако, когда я запустил программу, я не получил никаких результатов, ни один пароль не напечатан. Что я сделал не так? Код для генерации идентификаторов:

#!/bin/python3
def genEmployeeID():
        with open('dictionary.txt', 'w') as wfile:
                for i in range(1000000):
                        wfile.write(f'900{i:06}' + "\n")
genEmployeeID()

Код для перебора PDF-файла:

#!/bin/python3
import PyPDF2
import sys
filename = 'PS7_encrypted.pdf' 
dictionary = 'dictionary.txt' 

password = None 
file_to_open = PyPDF2.PdfFileReader(filename) 
with open(dictionary, 'r') as f: 
   for line in f.readlines(): 
         password = line.strip('\n') 
         try: 
               pss = bytes(password, 'utf-8')
               file_to_open.extractText(pwd = pss) 
               password = 'Password found: %s' % pss 
               print(password) 
         except: 
               pass

1 Ответ

0 голосов
/ 02 апреля 2020

Является ли extractText функцией этого объекта? Я не могу найти его в документации . Поскольку вы не указываете указанное исключение c для перехвата, я предполагаю, что оно переходит прямо в блок except, когда не находит эту функцию. То, что вы ищете, кажется decrypt(password).

...