导航:首页 > 文档加密 > 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加密和签名相关的资料

热点内容
毒app怎么加卖家 浏览:838
北漂程序员互联网 浏览:240
程序员实现不了一些效果 浏览:790
php框架的编译 浏览:737
地基处理加密技巧 浏览:199
战地为什么总是断开服务器 浏览:256
ios解压缩rar 浏览:960
如何用java做一个web服务器 浏览:150
电子制冷和压缩制冷哪个好 浏览:940
餐饮潮汕丸子简介在app怎么写 浏览:786
特斯拉app怎么绑定多辆车 浏览:417
aed服务器是什么 浏览:402
imagemagick压缩gif 浏览:917
iphonex方舟编译器 浏览:654
kepware的服务器端点如何设置 浏览:370
用python自制扫雷 浏览:334
xboxones手柄如何配对安卓 浏览:490
湖南郴州java程序员培训机构 浏览:137
服从命令成语 浏览:229
gcc编译链 浏览:832