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

热点内容
linux变量字符串 浏览:429
苹果解压视频在哪里找 浏览:964
中国程序员发现最大程序漏洞 浏览:776
图像数据加密解密 浏览:189
pdf金 浏览:511
湖北拼团商城源码 浏览:198
为什么说服务器没有响应 浏览:972
linux怎么搭web服务器 浏览:254
房产证加密收费吗 浏览:154
slam算法处理数据 浏览:269
如何判断服务器ip地址和版本号 浏览:966
python获取html内容 浏览:771
北欧大神程序员 浏览:206
安卓手机怎么拍出照片的质感 浏览:837
编译后的病毒长什么样子 浏览:25
围棋与程序员 浏览:262
加密和解密的单词 浏览:986
我的世界td服务器怎么注册 浏览:417
编译器的堆空间 浏览:604
云引擎云服务器 浏览:912