当前位置: 首页 > news >正文

网站导航设计欣赏上海网站建设 数字展厅

网站导航设计欣赏,上海网站建设 数字展厅,摄影师网站,手机网站网址申请如何检查pdf的签名 首先这里有一个已经签名的pdf文件#xff0c;通过pdf软件可以看到文件的数字签名。 图1为签名后的文件#xff0c;图2为签名后文件被篡改。 下面就是如何代码检查这里pdf文件的签名 1.引入依赖 dependencygroupIdorg.projectlombok通过pdf软件可以看到文件的数字签名。 图1为签名后的文件图2为签名后文件被篡改。 下面就是如何代码检查这里pdf文件的签名 1.引入依赖 dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependency!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --dependencygroupIdcom.itextpdf/groupIdartifactIditextpdf/artifactIdversion5.5.13.3/version/dependencydependencygroupIdorg.bouncycastle/groupIdartifactIdbcprov-jdk15on/artifactIdversion1.70/version/dependencydependencygroupIdorg.bouncycastle/groupIdartifactIdbcpkix-jdk15on/artifactIdversion1.70/version/dependency编写检查签名的方法 import com.itextpdf.text.pdf.AcroFields; import com.itextpdf.text.pdf.PdfReader; import com.itextpdf.text.pdf.security.PdfPKCS7; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory;import java.io.IOException; import java.security.GeneralSecurityException; import java.security.Principal; import java.security.Provider; import java.security.Security; import java.security.cert.X509Certificate; import java.util.Calendar; import java.util.List;/*** pdf文件签名检查*/ public class PdfDigitalSignatureCheck {private static final Logger LOGGER LoggerFactory.getLogger(PdfDigitalSignatureCheck.class);public static final boolean verifySignature(PdfReader pdfReader)throws GeneralSecurityException, IOException {boolean valid false;AcroFields acroFields pdfReader.getAcroFields();ListString signatureNames acroFields.getSignatureNames();if (!signatureNames.isEmpty()) {for (String name : signatureNames) {if (acroFields.signatureCoversWholeDocument(name)) {//设定签名提供者Provider providerSecurity.getProvider(BouncyCastleProvider.PROVIDER_NAME);if(providernull){providernew BouncyCastleProvider();Security.addProvider(provider);}PdfPKCS7 pkcs7 acroFields.verifySignature(name);valid pkcs7.verify();String reason pkcs7.getReason();Calendar signedAt pkcs7.getSignDate();X509Certificate signingCertificate pkcs7.getSigningCertificate();Principal issuerDN signingCertificate.getIssuerDN();Principal subjectDN signingCertificate.getSubjectDN();LOGGER.info(valid {}, date {}, reason {}, issuer {}, subject {},valid, signedAt.getTime(), reason, issuerDN, subjectDN);break;}}}return valid;}/*** 验证签名** param name* return* throws IOException* throws GeneralSecurityException*/public static boolean validate(String name)throws IOException, GeneralSecurityException {PdfReader reader new PdfReader(name);boolean isSign verifySignature(reader);return isSign;}}编写测试用例,并执行可以看到数字证书相关信息。 如果有多个签名则会显示多个签名 Testvoid pdfDigitalSignatureCheck() throws IOException, GeneralSecurityException {System.out.println(-----------数字签名检查------------);String[] files {D:\\test3\\test1_sign.pdf, D:\\test3\\test1.pdf,D:\\test3\\test1_sign_wrapper.pdf};for (String file : files) {boolean validate PdfDigitalSignatureCheck.validate(file);log.info({} 是否签名:{}, file, validate);}}备注: test1_sign.pdf 为已签名文件test1.pdf为原始未签名文件test1_sign_wrapper.pdf为签名后更改过的文件模拟签名后文件被篡改 遇到的问题 签名设定 如果你的签入使用的BouncyCastleProvider那么你的签名检查也应该使用BouncyCastleProvider否则可能会报错。
http://www.dnsts.com.cn/news/78354.html

相关文章:

  • 怎么样建设公司网站哈尔滨seo优化排名免费咨询
  • 网站目录 整理自适应型网站建设服务电话
  • 哈尔滨网站建设有限公司wordpress cascade
  • 怎么免费建立自己的网站字体+添加+wordpress
  • 手机网站建设制作教程视频教程做播放器电影网站需要多少钱6
  • 12个 网站模板 管理办法开服网站源码
  • h5网站制作价格保定有哪些做网站的地方
  • 中国月球空间站招聘网最新招聘信息网
  • 网站建设的英文翻译深圳网站建设怎么样
  • 外贸黄页网站句容建设工程备案网站
  • 怎么样网站建设家具公司网站模板下载
  • 平台网站开发价格seo优化关键词分类
  • 有一个域名做网站地板网站代码
  • 建设银行网站维护wordpress版本选择
  • 蓝天网站建设我国企业网站的建设情况
  • 域名注册在那个网站好广东建设银行网站首页
  • 海外黄冈网站推广线上推广的优势
  • 重庆做营销网站wordpress 连接微博
  • 网站制作公司站建设wordpress后台出现404
  • 网站不推广如何排名淮北市矿务局工程建设公司网站
  • 鼠标放上去图片放大的网站网络服务的工具
  • 成立门户网站建设工作小组卢松松网站怎么做
  • 知识产权教育网站建设兰州迅豹网络怎么样
  • 湖南企业建站系统信息企业网站建设服务优势
  • 什么二手车网站做最好如何制作短视频
  • 天猫官方网站首页wordpress浮动关注我们
  • 网站建设吉金手指排名11柳州网站建设
  • 网站开发有什么语言可以做视频推广的网站
  • 网站投放广告费用公司网站的推广
  • 腾讯网站建设费用网站建设规划书300字