当iText使用PDfStamperin正常模式操作文档时,它可以(并且经常)重新排列现有的PDF对象.这显然打破了任何现有集成签名的哈希值.此外,必须签名的字节范围也会发生变化.这很可能是你的问题.

当iText使用PDfStamperin追加模式操作文档时,它会按原样保留PDF并仅附加其添加和更改.虽然这通常是保持集成签名不被破坏的方法,但是您不能以这种方式更改签名的内容,因为有一些关于嵌入签名的规则比一般的PDF更严格.因此,切换到追加模式不会解决您的问题.

因此,iText有一个显式的方法来进行签名插入,而不会改变PDF:

MakeSignature.signDeferred(PdfReader reader,

String fieldName,

OutputStream outs,

ExternalSignatureContainer externalSignatureContainer)

throws DocumentException, IOException, GeneralSecurityException

它的名称是由于这个方法最初是针对延迟签名的用例,即首先准备PDF进行签名(即添加所有字典和散列字节范围所需的其他必要结构,包括留下一个空白签名容器最终将被注入),计算哈希值,并将其发送到其他服务,同时在本地存储准备好的PDF.一旦其他服务返回签名,就会找到准备好的PDF,并使用此方法将检索到的签名插入其中.

与您的用例的唯一区别在于差距中已经存在签名.但是,当使用signDeferred时,该签名将被您更新的签名覆盖.

说完这一切后,如果您希望在向无符号属性添加ocsp响应后,Adobe Reader可能会使用这些信息进行验证.在根据ISO-32000-1,第12.8.3.3节的ISOCS 32中使用的PKCS#7签名的集成PDF签名的上下文中,

the PKCS#7 object should contain […] Revocation information as an signed attribute (PDF 1.6): This attribute may include all the revocation information that is necessary to carry out revocation checks for the signer’s certificate and its issuer certificates. Since revocation information is a signed attribute, it must be obtained before the computation of the digital signature. This means that the software used by the signer must be able to construct the certification path and the associated revocation information. If one of the elements cannot be obtained (e.g. no connection is possible), a signature with this attribute will not be possible.

java pdf 签名 修改_java – 替换PDF中的签名内容相关推荐

  1. java replace换行符_Java 替换字符串中的回车换行符的方法

    使用正则表达式进行替换: 代码片段: string documenttxt = entityutils.tostring(entity,"gbk");//获取数据 document ...

  2. PDF可以修改吗,PDF页面怎么旋转方向

    PDF文件的使用次数越来越多,但我们有时候用到的PDF文件并不都是好好的,有时候文件会有一些小错误这个时候我们就需要对PDF文件进行编辑修改,上次有小伙伴在问PDF文件可以修改吗,答案是可以啊,只是P ...

  3. LC-1807. 替换字符串中的括号内容(哈希模拟)

    1807. 替换字符串中的括号内容 难度中等30 给你一个字符串 s ,它包含一些括号对,每个括号中包含一个 非空 的键. 比方说,字符串 "(name)is(age)yearsold&qu ...

  4. java 读取pdf签名域_Java 获取PDF中的数字签名信息

    本文以Java代码演示如何获取PDF文档中的数字签名信息,包括签名人.签名位置.日期.原因.联系方式.签名在文档中的坐标等等. 程序环境包括: Jdk 1.8.0(版本要求>=1.6.0版本即可 ...

  5. java导出pdf 含图片_java 生成PDF含图片和中文件实现代码

    1,所需包 iText.jar iTextAsian.ar(支持中包) 2,列子 package com.pdf; import java.awt.Color; import java.io.File ...

  6. java解析pdf 图片文字_Java 读取PDF中的文本和图片

    本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法.分别调用方法extractText()和extractImages()来读取. 使用工具:Free Spire.PDF for Java ...

  7. java 读取pdf签名域_Java给PDF签名

    1.引入依赖 com.e-iceblue e-iceblue http://repo.e-iceblue.cn/repository/maven-public/ e-iceblue spire.pdf ...

  8. java 生成纯色图片_Java 给PDF文档设置背景色(纯色、背景图片)

    import com.spire.pdf.PdfDocument; import com.spire.pdf.PdfPageBase; import java.awt.*; public class ...

  9. PDF怎么修改文字,PDF修改文字操作方法

    PDF文件怎么修改文字呢?PDF文件一直是一种比较安全的文章,但是也因为PDF文件的安全性,导致PDF文件无法直接编辑文字内容,其实想要修改PDF文字内容也不是不可以,使用专业的PDF文件就可以了,下 ...

最新文章

  1. Meta 研发触觉手套助力元宇宙,虚拟世界也可以有触觉
  2. 允许root远程登录Solaris
  3. iOS 自定义 View
  4. 解决gpg failed to sign the data fatal: failed to write commit object解决方案
  5. Android移动开发之【Android实战项目】渐变的TextView小漂亮代码
  6. Mysql格式化日期时间
  7. idea + Maven + Spring + myBatis的单元测试
  8. 三年了总觉的还是该写点什么
  9. mysql select db error_select error:不能用DB-library(如isql)不能用DB-library(如isql
  10. php订阅号借权,php订阅号借权
  11. 数据结构之图的存储结构:邻接表法
  12. 前端开发必看 | Vue在前端市场这么火,它到底是什么?
  13. django下创建多个app,如何设置每个app的urls
  14. java calendar类_Java世界最常用的工具类库
  15. 许三多修路带给我们成功的启示
  16. ap6212中串口蓝牙在linux下的使用记录
  17. 2019-11-6-Roslyn-how-to-use-WriteLinesToFile-to-write-the-semicolons-to-file
  18. linux用户管理相关
  19. PAT乙级—1044 火星数字 (20分)
  20. 5410 ACM 杭电 01+完全背包

热门文章

  1. 独家!10省份“12个5G+智慧公交”案例汇总!
  2. linux认证考试内容,Linux认证考试RHCE大纲
  3. python中reverse函数的作用_python的reverse函数翻转结果为None的问题
  4. JAVA应该怎么学?
  5. python爬虫基础(12:app数据爬取)
  6. 炒鸡详细的windows安装python教程
  7. MATLAB的线性规划工具
  8. 使用malloc动态内存分配一个二维数组
  9. ubuntu系统忘记密码(win+ubuntu双系统)
  10. Hibernate 3.6.10 jar包下载链接