Android中的签名验证(1)
时间:2010-08-25 来源:uplooking_sh
在介绍Android,我们要了解密码学的基本知识:加密。请看对加密技术的一点总结(1)
而在Gphone上的数字签名不仅存在于所有安装的应用程序上,在使用updata.zip刷机的时候,刷机包也用到了签名验证。
首先看看apk是如何进行签名:
(1)必备工具:Sun官方网站下载JDK,安装后产生的keytool和jarsigne两个系统工具。
而对于两个工具和keystore的介绍请看:jdk工具keytool和jarsigner帮助Part1(jdk keytool&jarsigner tool manual) 和 jdk工具keytool和jarsigner帮助Part2(jdk keytool&jarsigner tool manual)
这两篇讲得非常的透彻,感谢NCNC
(2)生成keystore
$keytool -genkey -alias tekkaman.keystore -keyalg
RSA -validity 20000 -keystore tekkaman.keystore
输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]: tekkaman
您的组织单位名称是什么?
[Unknown]: NERV
您的组织名称是什么?
[Unknown]: NERV
您所在的城市或区域名称是什么?
[Unknown]: Linux
您所在的州或省份名称是什么?
[Unknown]: GNU
该单位的两字母国家代码是什么
[Unknown]: CN
CN=tekkaman, OU=NERV, O=NERV, L=Linux, ST=GNU, C=CN 正确吗?
[否]: 是
输入<tekkaman.keystore>的主密码
(如果和 keystore 密码相同,按回车):
(3)使用你生成的keystore对apk包签名
$jarsigner -verbose -keystore tekkaman.keystore -
signedjar tekkaman_signed.apk tekkaman.apk tekkaman.keystore
输入密钥库的口令短语:
正在添加: META-INF/TEKKAMAN.SF
正在添加: META-INF/TEKKAMAN.RSA
正在签名: ......
......