当前位置: 首页 > 知识库问答 >
问题:

PDF中的数字签名在添加批注后不被验证为匹配

越麒
2023-03-14

我在看正式的PDF规范。我在这里看到一个数字签名的PDF文件。当我在分析它的目录词典时,我看到了这样的:

数字签名采用签名字段的形式,该字段指定签名所应用的内容的字节范围。添加在上面的任何内容,如注释、注释等,都应该以增量更新的方式进入,因此原始内容的有效性应该继续保持正确(不包括直接编辑内容,如将示例单词更改为示例2)。但是,当我在Nitro中打开文件,在其中添加一些高亮或注释,保存并在Acrobat中打开时,它现在说签名无效。这就引出了我的问题:

>

  • 为什么杂技演员表现为无效?签名字段不强制阻止添加增量更新,为什么它是无效的?

    为什么Acrobat不允许添加注释或高光?例如,硝基允许它。没有指定DocMDP级别限制的Perms字典,那么Adobe解释为文档级别锁的具体内容是什么呢?

  • 共有1个答案

    罗寒
    2023-03-14

    正如我在回答你之前关于这个主题的问题时已经解释过的,你称之为“官方PDF规范”的文件是什么都不是的。正式的PDF规范是ISO 32000-1(自2008年起)和ISO 32000-2(2017年更新)。

    这个答案还指出了sreenshot显示的FieldMDP转换字典中P条目的来源:

    它来自同一个签名字典的锁字典,并在Adobe对ISO 32000的补充,扩展级别3中定义(不幸的是,Adobe确实引用了PDF引用1.7而不是ISO 32000-1):

    1、不允许对文件进行任何修改;对文档的任何更改都会使签名无效。

    这一对ISO 32000-1的扩展已添加到标准ISO 32000-2中。

    因此,

      null
     类似资料:
    • 我需要将一个使用iText5进行PDF签名验证/创建的Java程序移植到iText7。 旧代码显然不能按原样工作,因为iText的大部分内容都经过了重组。 我找到的所有关于如何做到这一点的例子和教程都是针对iText5的。(非常好的)白皮书也是如此。它们依赖于通过方法返回的列表,在该方法上执行所有与签名相关的操作。 在iText7中,不再具有该方法。 有人知道iText7的例子/文档吗?

    • 我正在用C#开发一个执行数字签名验证的webserver,以确保pdf文件没有被修改。我使用了iText和iTextSharp。 和我的C#验证码: 在VerifySignature(name)行中;抛出NullReferenceException! 有趣的是,如果我使用C#代码执行签名,我就可以在java中验证它,因为我添加了这些指令:BouncyCastleProvider provider=

    • 我有字节数组格式的公钥。在我的数据库里。像这样 在此处输入图像描述 总是suc=false。我确信bytetoverify的值与方法符号中的输入值相同。 我不知道我用这种方式生成公钥是问题还是符号有问题。在符号方法中,我使用sh1和pkcs1,但在验证中,我只找到sh1。 每个人都能帮我吗?

    • 本文向大家介绍c# 给pdf添加数字签名的步骤,包括了c# 给pdf添加数字签名的步骤的使用技巧和注意事项,需要的朋友参考一下 数字签名广泛用于保护PDF文档,可见数字签名在日常生活中是相当重要的。在这篇文章中我将与大家分享如何给PDF文件添加可见的数字签名。 首先我下载了一个由E-iceblue公司开发的免费版的PDF组件-Free Spire.PDF,控件安装好后,再通过下面所提及的路径把Bi

    • 出身背景 我使用iTextSharp已经有一段时间了。我已经创建了一个带有两个可签名的PdfFormFields的pdf文档。如果我打开pdf文档,我可以手动对每个字段进行手动签名。我希望通过iTextSharp完成这件事。 我目前正在从X509Store检索证书。直到现在,我都能弄明白。 问题 有人能告诉我如何使用X509Certificate2签署一个已经存在的签名字段吗。 工具书类 以下参考