如何从python解码pdf加密文件
Posted
技术标签:
【中文标题】如何从python解码pdf加密文件【英文标题】:How to decode a pdf encrypted file from python 【发布时间】:2016-12-14 19:15:51 【问题描述】:我有一个 PDF 文件和相关密码。
我会仅使用 python 将加密文件转换为清晰版本。
我找到了here 一些python 模块(pyPdf2,PDFMiner) 处理 PDF 文件,但它们都不能用于加密。
有人已经这样做了吗?
【问题讨论】:
【参考方案1】:您还需要知道加密算法和密钥长度,以便能够建议哪种工具可以工作......并且根据答案,python 库可能不可用。
【讨论】:
您的回答是指加密算法和密钥长度取决于之前创建 PDF 的位置吗? 否 - 我的意思是 PDF 文件可以使用 RC4 或 AES 算法,甚至是密钥长度从 40 到 128 的未发布算法进行加密。并非所有库工具都支持所有变体。 没有人尝试重用开源 pdf 阅读器如何检测加密算法和密钥长度?你确定没有标准吗?【参考方案2】:现在pyPDF2支持加密,根据this answer,可能是这样实现的:
import os
import PyPDF2
from PyPDF2 import PdfFileReader
fp = open(filename)
pdfFile = PdfFileReader(fp)
password = "mypassword"
if pdfFile.isEncrypted:
try:
pdfFile.decrypt(password)
print('File Decrypted (PyPDF2)')
except:
command = ("cp "+ filename +
" temp.pdf; qpdf --password='' --decrypt temp.pdf " + filename
+ "; rm temp.pdf")
os.system(command)
print('File Decrypted (qpdf)')
fp = open(filename)
pdfFile = PdfFileReader(fp)
else:
print('File Not Encrypted')
请注意,此代码默认使用pyPDF2,如果出现问题,请故障回复到qpdf。
【讨论】:
以上是关于如何从python解码pdf加密文件的主要内容,如果未能解决你的问题,请参考以下文章
python [使用PyPDF2加密PDF文件]使用Python加密PDF文件。 #蟒蛇