【问题标题】:multiple signatures invalidate first signature in iTextSharp pdf signing多个签名使 iTextSharp pdf 签名中的第一个签名无效
【发布时间】:2016-01-20 18:33:26
【问题描述】:

我在使用 iTextSharp 时遇到问题。我有一个包含表单字段的文档,并且我已经为签名生成了字段。当第一个人签署文件时,它工作正常。 Adobe Reader 显示有效签名。当我让第二个人在文档上签名时,Adobe Reader 显示签名 1 现在是“未知签名”并且签名无效。 Adobe阅读器显示:

其中包含的格式或信息有错误 签名(支持信息:SigDict /Contents 非法数据)

就 iTextSharp 而言,该项目用于执行签名。没有错误或异常。只有一个签名的文件不是问题。签名代码全部基于本文中答案的缩减代码: ITextSharp SetVisibleSignature not working as expected

我可以使用的最新版 iTextSharp 是 5.5.6。 5.5.7 有一个链接文章引用的错误。我尝试将这个项目降级到 5.5.5、5.5.4 和 5.4.2,我得到了相同的结果。有没有人对如何解决为什么 Adob​​e Reader 在应用 Rev. 2 签名后认为 Rev. 1 签名无效有任何建议?

【问题讨论】:

  • 您是在附加模式下创建第二个、第三个等签名吗?不这样做会使之前的签名失效。
  • 您引用的答案中PdfStamper.CreateSignature(reader, outputStream, '\0', null, true); 中的最终true 很重要。
  • 是的,它处于附加模式。
  • 在这种情况下,请分享带有 2 个签名的毛皮分析结果 PDF。
  • @mkl,但是如果您不在附加模式下执行此操作,为什么会创建非法数据?使签名无效是有意义的,但破坏它没有意义。

标签: c# pdf itextsharp


【解决方案1】:

你问的很好。我开始通过代码来模拟一个没有任何敏感数据的样本,并偶然发现了一个正在注入表单字段数据而不使用附加模式的压模。这就是破坏它的原因。我的错。仅供参考,链接文章中的示例签名代码效果很好。

【讨论】:

    猜你喜欢
    • 2016-05-09
    • 1970-01-01
    • 1970-01-01
    • 2018-02-24
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    相关资源
    最近更新 更多