Для выполнения задания, которое я сейчас делаю, я должен взломать заблокированный файл PDF. У меня есть цикл while, который создает потенциальные пароли, один из которых взломает файл PDF. У меня также есть программа, которая разбивает файлы PDF с помощью словарного списка. Код для обеих программ заключается в следующем:Cracking PDF File, Python 2.7
While Loop:
from random import shuffle
with open('randomwords.txt', 'r') as data:
data = data.read().split()
while(True):
shuffle(data)
password = ''
for x in data[:3]:
password += x
print password.replace('o', '0')
PDF Cracker:
import PyPDF2
import sys
import optparse
parser = optparse.OptionParser()
parser.add_option('-f', '--file', dest='file', help='encrypted file')
parser.add_option('-w', '--wordlist', dest='word', help='wordlist file')
(options, args) = parser.parse_args()
if options.file == None or options.word == None:
print('')
sys.exit()
file = options.file
word = options.word
wordlist = open(word)
pdf = PyPDF2.PdfFileReader(open(file,'rb'))
if not pdf.isEncrypted:
print('This PDF has no password')
else:
for line in wordlist.readlines():
if pdf.decrypt(line.rstrip()):
print('[+] Password: ' +line)
sys.exit()
print('[-] Password not found')
Для того, чтобы завершить это задание, я взломать PDF-файл, является его возможно объединить эти две программы, поэтому я могу использовать цикл, чтобы взломать файл, а не использовать список слов.
Это немного выше моего нынешнего уровня мастерства с помощью Python, которые боролись с этой проблемой в течение нескольких дней.
Я хотел бы программу, чтобы попробовать каждый пароль цикл, пока генерирует до тех пор, пока не найдет правильный пароль, а затем прекратить. Я не полностью понимаю itertools.permutations. Делает то, что вы написали, позволяет моему коду работать так, как мне хотелось бы? Или есть еще немного? – Quarismo
Я обновил свой ответ на примере itertools.permutations и добавил, как будет выглядеть цикл. Скажите, если использование таких перестановок не так, как вы планировали. – avodo