导航:首页 > 文档加密 > java加密和签名

java加密和签名

发布时间:2024-10-03 22:20:39

A. java如何对pdf文件实现数字签名

用Spire.Doc for Java 可以添加及验证数字签名,参考代码:

importcom.spire.pdf.*;
importcom.spire.pdf.graphics.PdfImage;
importcom.spire.pdf.graphics.PdfTrueTypeFont;
importcom.spire.pdf.security.GraphicMode;
importcom.spire.pdf.security.PdfCertificate;
importcom.spire.pdf.security.PdfCertificationFlags;
importcom.spire.pdf.security.PdfSignature;

importjava.awt.*;
importjava.awt.geom.Point2D;
importjava.awt.geom.Rectangle2D;

publicclassAddCertificate{
publicstaticvoidmain(String[]args){
//加载PDF文档
PdfDocumentdoc=newPdfDocument();
doc.loadFromFile("test.pdf");

//加载pfx证书,及证书秘钥
PdfCertificatecert=newPdfCertificate("Cermia.pfx","123654yes!");

//添加数字签名到指定页面,并设置其位置和大小
PdfSignaturesignature=newPdfSignature(doc,doc.getPages().get(2),cert,"MySignature");
Rectangle2Drect=newRectangle2D.Float();
rect.setFrame(newPoint2D.Float((float)doc.getPages().get(0).getActualSize().getWidth()-340,(float)doc.getPages().get(0).getActualSize().getHeight()-230),newDimension(280,150));
signature.setBounds(rect);

//设置签名为图片加文本模式
signature.setGraphicMode(GraphicMode.Sign_Image_And_Sign_Detail);

//设置签名的内容
signature.setNameLabel("签字者:");
signature.setName("Mia");
signature.setContactInfoLabel("联系电话:");
signature.setContactInfo("02881705109");
signature.setDateLabel("日期:");
signature.setDate(newjava.util.Date());
signature.setLocationInfoLabel("地点:");
signature.setLocationInfo("成都");
signature.setReasonLabel("原因:");
signature.setReason("文档所有者");
signature.setDistinguishedNameLabel("DN:");
signature.setDistinguishedName(signature.getCertificate().get_IssuerName().getName());
signature.setSignImageSource(PdfImage.fromFile("sign.png"));

//设置签名的字体
signature.setSignDetailsFont(newPdfTrueTypeFont(newFont("ArialUnicodeMS",Font.PLAIN,9)));

//设置文档权限为禁止更改
signature.setDocumentPermissions(PdfCertificationFlags.Forbid_Changes);
signature.setCertificated(true);

//保存文档
doc.saveToFile("AddSignature.pdf");
doc.close();
}
}

数字签名添加效果:

数字签名效果

参考原文

B. Java 给Word添加数字签名 Java给Word添加数字签名的方法

Java 给Word添加数字签名 Java给Word添加数字签名的方法。数字签名是一种应用于数字数据的电子加密身份验证戳记,主要用于确认来自签名者的信息以及文档内容未被篡改。本文,将介绍如何使用Spire.DocforJava以编程方式向Word文档添加数字签名。
工具/材料
IntedliJIDEA
JDK1.8.0
Jar包:spire.doc.jar4.5.1
Word文档:.docx2013版
数字证书:.pfx及秘钥
操作方法
01
1.关于如何导入jar
1.1手动下载jar包,导入,
1.2maven仓库下载导入,须配置pom.xml文件,如下:
repositories
repository
idcom.e-iceblue/id
url
/repository
/repositories
dependencies
dependency
groupIde-iceblue/groupId
spire.doc
version4.5.1/version
/dependency
/dependencies
完成配置后方可下载导入。
02
Java代码:
importcom.spire.doc.*;
publicclassAddSignature{
publicstaticvoidmain(String[]args){
//加载Word文档
Documentdoc=newDocument();
doc.loadFromFile("test.docx");
//添加数字签名,并保存文档
doc.saveToFile("AddSignature.docx",FileFormat.Docx_2013,"Cermia.pfx","123654yes!");
}
}
03
运行程序,生成Word文档。可查看如下图中的签名添加效果:

阅读全文

与java加密和签名相关的资料

热点内容
逗比的程序员头像 浏览:979
单片机原理作业答案 浏览:230
文件夹的东西怎么能转成文档 浏览:966
linux下解压iso 浏览:463
android常见分辨率 浏览:384
文件解压怎么变成ps 浏览:177
python教程django编程 浏览:263
程序员放飞自己 浏览:395
基建服务器有什么用 浏览:354
php表单防注入 浏览:91
什么叫e筋加密锁 浏览:712
世界无敌简单的折纸解压球 浏览:943
安卓开服光遇什么季节 浏览:565
破解的系统怎么用银行app 浏览:265
java三层架构mvc 浏览:880
徐州编程教育加盟 浏览:899
苹果手机脸书app如何设置中文 浏览:538
pdf文件在线修改 浏览:399
服务器上如何搭建自己的网站 浏览:467
云南省青少年学习编程 浏览:480