python实现打开文件的密码破解,且展示破解密码

python实现打开文件的密码破解,且展示破解密码

提示:这里是用的python暴力破解的方式之一

用python完成PDF打开密码的解密!!!(!代码直接可以运行!)


提示:生成打开密码的文件后可配合博主的相关文章进行PDF的编辑密码破解

相关文章链接–》》》python实现pdf文档的解密


前言

python相关库

用python的PyPDF2,pikepdf,tqdm库完成PDF打开密码的解密,配合博主的另一篇文章可起到对PDF的打开密码破解和编辑密码破解(再次推销!–》》》python实现pdf文档的解密


一、引入库

pip install pypdf2
pip install pikepdf
pip install tqdm

如果下载速度慢点这里:清华源下载镜像加速

二、直接实战

1.完整代码

在代码中还涉及到rockyou.txt文件,这是一个密码词典,是网上获取的,获取地址:rockyou.txt的下载地址

import pikepdf #是用来读取pdf文件
from PyPDF2 import PdfReader, PdfWriter  # python2用PdfFileReader, PdfFileWriter
from tqdm import tqdm # 用来读取进度条

def userCrak(filePathName, wordPathList):
    filename = filePathName  # pdf文件路径
    wordlist = wordPathList  # 密码字典路径
    n_words = len(list(open(wordlist, 'rb')))
    fp = open(filename, "rb+")
    pdfFile = PdfReader(fp)  # python2用PdfFileReader
    with open(wordlist, "rb") as wordlist:
        if pdfFile.is_encrypted: # python2为getIsEncrypted
            for word in tqdm(wordlist, total=n_words, unit="word"): # 显示进度条
                try:
                    pikepdf.open(filename, password=word.strip()) #打开文件查看是否能打开
                except:
                    continue
                else:
                    passwords = word.decode().strip() # 得到的密码
                    print(f"已经查找到密码为:{passwords}")
                    return passwords
            return print("!密码没有找到, 请尝试使用其他的密码词典!")

def fileSavePath(filePathName, userPasswordName):
    """如果是Python2用PdfFileReader"""
    pdf_reader = PdfReader(fr'{filePathName}')  # 输入你想要操作的pdf加密的文档的位置/名称
    pdf_reader.decrypt(f'{userPasswordName}') # 加入解密的密码
    """如果是Python2用PdfFileWriter"""
    pdf_writer = PdfWriter()
    """如果是python2将append_pages_from_reader改为appendPagesFromReader"""
    pdf_writer.append_pages_from_reader(pdf_reader)

    pdf_writer.write(open(filePathName, 'wb')) # 写文件
    print("!!!原PDF文件打开密码已去除!!!")


if __name__ == '__main__':
    filenamePath = r"D:\python\python算法\PDF处理\pdf_reports数学建模.pdf"  # pdf文件路径
    wordlistPath = r"D:\python\python算法\PDF处理\rockyou.txt"  # 密码字典路径
    userPassword = userCrak(filenamePath, wordlistPath) # 得到解密的密码
    fileSavePath(filenamePath, userPassword) # 将解密的密码和文件路径填入

1.运行方法及结果

(1)在代码路径下添加需要破解打开密码的pdf文件

在这里插入图片描述

(2)可以看到这个文件是需要打开的密码的

在这里插入图片描述

(3)运行上面的代码就可看到原PDF的原密码

在这里插入图片描述

(4)然后我们再打开PDF就可看到已经没有打开密码了

PS:如果已经破解了PDF密码。但是PDF还添加了编辑密码则需要移步到博主的另一篇文章(python实现pdf文档的解密),以达破解PDF的编辑密码问题

在这里插入图片描述


总结

PDF破解的方法有很多,python的pypdf也是其中之一,破解编辑密码是比较简单的,但往往最难的是破解打开密码,目前只能用词典库去查找比对,时代在进步,破解和反破解都会进步,所以也没有绝对的说法,只有说“人生苦短,努力学习吧!”

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值