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

怎么做360网站网页制作购物网站

怎么做360网站,网页制作购物网站,长沙建网站需要多少钱,wordpress 压缩包如何检查pdf的签名 首先这里有一个已经签名的pdf文件&#xff0c;通过pdf软件可以看到文件的数字签名。 图1为签名后的文件&#xff0c;图2为签名后文件被篡改。 下面就是如何代码检查这里pdf文件的签名 1.引入依赖 <dependency><groupId>org.projectlombok<…

如何检查pdf的签名

首先这里有一个已经签名的pdf文件,通过pdf软件可以看到文件的数字签名。
图1为签名后的文件,图2为签名后文件被篡改。
在这里插入图片描述
在这里插入图片描述

下面就是如何代码检查这里pdf文件的签名
1.引入依赖

 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.3</version></dependency><dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.70</version></dependency><dependency><groupId>org.bouncycastle</groupId><artifactId>bcpkix-jdk15on</artifactId><version>1.70</version></dependency>
  1. 编写检查签名的方法
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();List<String> signatureNames = acroFields.getSignatureNames();if (!signatureNames.isEmpty()) {for (String name : signatureNames) {if (acroFields.signatureCoversWholeDocument(name)) {//设定签名提供者Provider provider=Security.getProvider(BouncyCastleProvider.PROVIDER_NAME);if(provider==null){provider=new 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;}}
  1. 编写测试用例,并执行,可以看到数字证书相关信息。

如果有多个签名,则会显示多个签名

    @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.yayakq.cn/news/32986/

相关文章:

  • 投资交易网站开发新媒体培训班学费多少
  • 常州app网站百度关键词优化师
  • 从事网站建设学设计去哪个培训好
  • 网站建设求职信电子商务网站建设论文
  • 建设工程施工合同范本哪个网站网站轮播图片怎么做的
  • 摄影网站怎么做做网站比较便宜
  • 郑州做网站zzmshl佛山市建设网站
  • 百度网站提交地址怎么做公众号推文
  • 怎样用h5做网站视觉差 网站
  • 广州网站建设吧潍坊高端网站建设
  • 搭建一个网站教程偃师网站
  • 纪检监察信息网站建设电商平台网站有哪些
  • 做企业网站制作网站建设还好做吗
  • 班级网站 建设模板阿里云营销网站建设
  • cloudflare注册域名山东商祺网站建设优化
  • 网站设计需要的元素深圳龙华网站建设
  • 江门企业网站建设公司手机微信管理系统
  • 在线建设网站美化wordpress后台
  • 网站开发需多少钱用英文介绍购物网站
  • 宁波定制网站建设软文广告平台
  • 免费海外网站建设win7下asp.net网站发布
  • 可以做调查的网站美团网站制作的特色
  • wordpress 网站搬家做海报的素材哪个网站
  • 打开网站很慢马鞍山网站开发
  • 菜鸟制作个人网站网页实例norris wordpress
  • 湛江专业的建站托管变装小说wordpress
  • 淘宝客推广网站建设国家建设部防化工程师网站官网
  • 营销型网站制作流程Wordpress怎么设置维护
  • png图片可以做网站图标吗西红门网站建设
  • 关于服饰搭配做的比较好的网站wordpress 加速优化