文件数字签名(zip、jar等)

说明:需要签名的文件须为压缩类型文件,jar,zip,rar等,简单的文本文件无法进行签名

 

关于数字签名等的理论和说明,网上文档较多,本文不做赘述,另附两篇较通俗易懂的文章供参阅:

https://www.sohu.com/a/217347496_100008678

http://www.youdzone.com/signature.html

本文旨在使用jdk命令工具对文件进行签名和验证,以供参考。

代码实现:https://www.cnblogs.com/cymiao/p/8398979.html

 

准备需要签名的文件:example-1.0-SNAPSHOT.war,文件内容如下图

文件中META-INF的内容如下。

使用jdk的keytool命令工具生成名为 hochoy.store的密钥库,别名为hochoy.

操作命令和相关步骤如下:

> keytool -genkey -keystore hochoy.store -alias hochoy

密码:123456 (根据需要自己输入)

 

 

导出hochoy.cer数字证书

>  keytool -export -keystore hochoy.store -alias hochoy -file hochoy.cer

密码:123456 (根据需要自己输入)

 

对example-1.0-SNAPSHOT.war文件进行签名

jarsigner -keystore hochoy.store   example-1.0-SNAPSHOT.war  hochoy

签名之后META-INF的文件目录结构:

对jar文件签名之后,在原来jar包的内部的META-INF目录下回生成HOCHOY.DSA 和HOCHOY.SF 两个文件用以验证以及会对其中MENIFEST.MF文件进行修改

若签名的非jar文件或原文件中不含META-INF目录,签名之后会生成该目录,并在该目录下生成HOCHOY.DSA,HOCHOY.SF,MENIFEST.MF三个文件

 

验证

> jarsigner -verify   example-1.0-SNAPSHOT.war

在签名后的文件没有被修改的情况下验证得到如下信息:

若签名后的文件被修改过,则验证得到如下信息,表明文件被修改过

 

说明:

本文仅对war包进行了签名,经验证jar、zip包的签名同样可用,方法同上,可自行验证。

相关文件可下载https://download.csdn.net/download/hochoy/10964567

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值