【问题标题】:Can a pdf be signed multiple times using python endesive library?可以使用 python endive library 对 pdf 进行多次签名吗?
【发布时间】:2021-07-02 11:02:55
【问题描述】:

我有一个 pdf,其中同一文档的多个副本合并为一个。我想对每个副本进行数字签名,这意味着 pdf 必须有多个数字签名。我在 Python 中使用 endive 库对 PDF 进行数字签名。当我签署一次文档时,签名显示为有效,但当我多次编写相同的签名时,它表明签名无效(打开文档时)。对文档进行多次数字签名是否正确,如果可以,如何使用 Python 的 endive 库来实现?

【问题讨论】:

    标签: python pdf digital-signature


    【解决方案1】:

    数字签名和手动签名之间有很大的区别:使用手动签名,您可以在纸张上添加签名,并且您可以/必须单独签署每一页。

    使用数字签名,您可以签署一个被视为字节序列的整个文档。 AFAIK,没有办法在文档的不同部分上有不同的签名。

    可以将各个部分组装成一个大文件,然后签署最终文件。最终签名将证明签名者证明文件在他们签名时有效,并且自那时起它没有被篡改。

    多重签名的一个常见用法是证明许多人都同意文档的内容。在行政流程中,员工准备一份文件,在其上签名以标记他们对内容负责,而经理再次签名以标记该文档已受到控制。

    【讨论】:

      【解决方案2】:

      为了制作多个签名,您必须在每次添加签名时逐步保存 pdf。 如果使用 PyMuPDF 构建文档,必须另存为

      saveIncr()

      仅 PDF:以增量方式保存文档。这是 doc.save(doc.name, incremental=True, encryption=PDF_ENCRYPT_KEEP) 的方便缩写。

      write(garbage=0, clean=False, deflate=False, deflate_images=False, deflate_fonts=False, ascii=False, expand=0, pretty=False, encryption=PDF_ENCRYPT_NONE, 权限=- 1, owner_pw=None, user_pw=无) (在 v1.18.3 中更改)

      仅限 PDF:将文档的当前内容写入字节对象而不是文件。显然,您应该警惕内存要求。参数的含义与 save() 中的含义完全相同。食谱集一章包含使用此方法作为 pdfrw 预处理器的示例。

      【讨论】:

      • 请在您的回答中提供更多详细信息。正如目前所写的那样,很难理解您的解决方案。
      猜你喜欢
      • 2015-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-09
      • 1970-01-01
      • 2010-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多