python 暴力 PDF 口令破解程序

假定有一个加密的 PDF 文件,你忘记了口令,但记得它是一个英语单词。尝试猜测遗忘的口令是很无聊的任务。作为替代,你可以写一个程序,尝试用所有可能的英语单词来解密这个 PDF 文件,直到找到有效的口令。这称为暴力口令攻击。从http://nostarch.com/automatestuff/下载文本文件 dictionary.txt。这个字典文件包含 44000多个英语单词,每个单词占一行。利用第 8 章学过的文件读取技巧来读取这个文件,创建一个单词字符串的列表。然后循环遍历这个列表中的每个单词,将它传递给 decrypt()方法,如果这个方法返回整数 0,口令就是错的,程序应该继续尝试下一个口令。如果 decrypt()返回 1,程序就应该终止循环,打印出破解的口令。你应该尝试每个单词的大小写形式(在我的笔记本上,遍历来自字典文件的所有 88000 个大小写单词,只要几分钟时间。这就是不应该使用简单英语单词作为口令的原因)。
 

代码:

import PyPDF2
file = open('dictionary.txt', 'r')

pdfReader = PyPDF2.PdfFileReader(open('encryptedmiutes.pdf', 'rb'))
dictionary = []
for line in file.readlines():
	dictionary.append(line.rstrip())
	dictionary.append(line.rstrip().lower())

for word in dictionary:
	number = pdfReader.decrypt(word)
	if number == 1:
		print(f"The password: {word}")
		break
file.close()

猜你喜欢

转载自blog.csdn.net/dongyu1703/article/details/82801047