java 电子签章 开源_java操作pdf制作电子签章 - CSDN博客

java操作pdf制作电子签章

电子签章简介

电子签章,与我们所使用的数字证书一样,是用来做为身份验证的一种手段,泛指所有以电子形式存在,依附在电子文件并与其逻辑关联,可用以辨识电子文件签署者身份,保证文件的完整性,并表示签署者同意电子文件所陈述事实的内容。一般来说,对电子签章的认定,都是从技术角度而言的。主要是指通过特定的技术方案来鉴别当事人的身份及确保交易资料内容不被篡改的安全保障措施。从广义上讲,电子签章不仅包括我们通常意义上讲的”非对称性密钥加密”,也包括计算机口令、生物笔迹辨别、指纹识别,以及新近出现的眼虹膜透视辨别法、面纹识别等。而电子签章技术作为目前最成熟的”数字签章”,是以公钥及密钥的”非对称型”密码技术制作的。电子签章是电子签名的一种表现形式,利用图像处理技术将电子签名操作转化为与纸质文件盖章操作相同的可视效果,同时利用电子签名技术保障电子信息的真实性和完整性以及签名人的不可否认性 。

如果对数字证书,签名验签,摘要,数据签名不太理解的同学,可以参考我之前的文章

安全之加密算法(-)

openssl 自建ca,颁发客户端证书

具体了解下

java代码实现

java 操作pdf的开源类库我大概了解了两种pdfbox,itextpdf,两个库各有优势,目前据我使用可知,pdfbox功能较为强大,但是定制性较小,itextpdf 可定制性较高

准备

p12 证书

测试电子签章图片

f411fe1c0f3ec09de23b4e0c4878e378.png

测试pdf

2e557837ab443ec4161feb521a57e713.png

使用jar包

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iText 是一个用于生成 PDF 文件的开源库,它提供了丰富的功能,包括电子签章。通过 iText,你可以在 PDF 文档中添加数字签名和图形签名。 要使用 iText 进行电子签章,你需要先获取数字证书,并将其加载到 iText 中。然后,使用签名字段和相关信息创建数字签名,将签名添加到 PDF 文档中。 以下是使用 iText 进行电子签章的简单示例代码: ```java String src = "path/to/input.pdf"; String dest = "path/to/output.pdf"; String keystorePath = "path/to/keystore.p12"; String keystorePassword = "password"; KeyStore ks = KeyStore.getInstance("pkcs12"); ks.load(new FileInputStream(keystorePath), keystorePassword.toCharArray()); String alias = (String) ks.aliases().nextElement(); PrivateKey privateKey = (PrivateKey) ks.getKey(alias, keystorePassword.toCharArray()); Certificate[] chain = ks.getCertificateChain(alias); PdfReader reader = new PdfReader(src); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest)); PdfSignatureAppearance appearance = stamper.getSignatureAppearance(); appearance.setReason("Digital signature"); appearance.setLocation("Your location"); appearance.setVisibleSignature(new Rectangle(36, 748, 144, 780), 1, "Signature"); ExternalSignature pks = new PrivateKeySignature(privateKey, "SHA-256", "BC"); ExternalDigest digest = new BouncyCastleDigest(); MakeSignature.signDetached(appearance, digest, pks, chain, null, null, null, 0, MakeSignature.CryptoStandard.CMS); stamper.close(); reader.close(); ``` 这段示例代码假设你已经有一个包含数字证书的 keystore.p12 文件,并且已经将其加载到 iText 中。你需要指定输入和输出的 PDF 文件路径,以及 keystore 的密码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值