Android中的签名验证(1)

     Android系统要求所有安装的应用程序必需有数字签名。否则系统将不会安装和运行没有合适的签名许可的程序。无论是在设备还是模拟器上都必须给你的程 序建立签名才可以调试运。这是所有Android开发人员都懂得的道理。但是什么是数字签名,其中的原理是什么呢?我并不了解。所有趁有空,查了查相关的 知识。

     在介绍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
   正在签名: ......

   ......

 

原文地址:http://blog.csdn.net/tekkamanitachi/archive/2009/07/12/4342994.aspx

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值