【问题标题】:How to decode a pdf encrypted file from python如何从python解码pdf加密文件
【发布时间】:2016-12-14 19:15:51
【问题描述】:

我有一个 PDF 文件和相关密码。

我会仅使用 python 将加密文件转换为清晰版本。

我找到了here 一些python 模块(pyPdf2,PDFMiner) 处理 PDF 文件,但它们都不能用于加密。

有人已经这样做了吗?

【问题讨论】:

    标签: python pdf encryption


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2022-08-23
      • 1970-01-01
      • 2023-02-04
      • 2022-12-30
      相关资源
      最近更新 更多