java之jvm学习笔记(实践对jar包的代码签名)(二)

2014-11-24 10:41:07 · 作者: · 浏览: 2
ys,是滴,这里生成了一个用于存放密钥对的文件。
步骤四,对jar进行摘要并对hash摘要进行加密生成签名,放置到jar文件结构的尾部
在cmd窗口输入
jarsigner -keystore ijvmkeys -storepass ijvm2ed -keypass firend4file friend.jar friend
jarsigner -keystore ijvmkeys -storepass ijvm2ed -keypass stranger4file stranger.jar stranger
步骤五,查看生成的密钥文件,在cmd窗口输入keytool -list -v -keystore ijvmkeys -storepass ijvm2ed

查看上面最后一个截图,我们来验证一下在笔记七里说过的话。
1.我们说过hash摘要是一个128的值,对不对呢,看证书指纹那一行,md5:....
你数一数总共有几个十六进制数,32个,一个十六进制数用4个位可以表示完,那么总共是几位,32*4=128,但是后面还有一个sha1的,怎么回事他貌似不止128位,是滴,散列函数多种多样,到底用那个散列函数,md5还是sha1这个就看你喜欢,而要使用哪个散列函数是可以指定的,keytool的参数-keyalg "DSA",这个参数就是用来指定用什么散列算法的,默认的就是DSA,普通的128位散列数已经是安全的了。
2.在 笔记七中,记不记得最下面那个图,有一个认证机构会对解密签名(被加密的hash摘要)的公钥做认证(也就是加密公钥),并发布证书,我们这里没有认证机构,你有没有这个疑问?
keytool程序在生成密钥时,总是会生成一个自签名证书(自签名是指:如果附近没有认证机构,可以用私钥对公钥签名,生成一个自签名证书)
总结:
好了,对于jar文件的签名我们已经完成了,