Java代码签名与认证

8 篇文章 0 订阅

看了这一章的内容,觉得有的部分很熟悉,因为Android的签名认证就是使用的java的这一机制。签名和认证的过程如图:


至于公钥和私钥加密解密的过程和原理有待进一步研究。签名和认证的示例如下:

1. 编写类Friend和Stranger继承字Doer
2. 将Friend和Stranger分别打成jar包

jar cvf friend.jar com/artima/security/friend/*.class
jar cvf stranger.jar com/artima/security/stranger/*.class
3. 生成两个密钥对
keytool -genkey -alias friend -keypass friend4life -validity 10000 -keystore ijvmkeys
keytool -genkey -alias stranger -keypass stranger4life -validity 10000 -keystore ijvmkeys
两次输入的密码需要一致。因为第二次添加key的时候需要访问keystore,于是就需要第一次设定的密码。
4. 使用jarsigner签名
jarsigner -keystore ijvmkeys -storepass ijvm2ed -keypass friend4life friend.jar friend
jarsigner -keystore ijvmkeys -storepass ijvm2ed -keypass stranger4life stranger.jar stranger
签名过的jar包,修改其中的内容后,运行该jar包会报java.lang.SecurityException异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值