Android应用数字签名详解

Android系统要求所有应用必须经过数字签名才能安装。本文详细介绍了数字签名的重要性、好处及注意事项,包括通过命令行工具(keytool和jarsigner)以及Android Studio生成签名证书的步骤。此外,还讲解了如何查看应用的签名信息。
摘要由CSDN通过智能技术生成

目录


概述

Android系统要求所有的应用必须被证书进行数字签名之后才能进行安装。Android系统通过该证书来确认应用的作者,该证书是不需要权威机构认证的,一般情况下应用都是用开发者的自签名证书,该证书是确保应用程序和应用程序作者之间建立信任关系,而不是用来决定用户可以安装哪些应用程序。

应用进行数字签名的好处和注意事项如下:

  1. Android所有的应用程序必须要有数字证书签名,Android系统不会安装一个没有数字证书签名的程序。
  2. Android系统中,系统app使用的是平台证书签名,而第三方app一般使用开发者的自签名证书。
  3. Release版本的第三方app(例如淘宝、支付宝、微信),必须使用一个合适私钥生成的数字证书来给程序进行签名,并且保证每次的迭代新版本都是使用相同的证书进行数字签名。不然的话,新版本和旧版本的数字证书不一致,Android系统会认为这是两个不同的app,导致更新等操作失败。
  4. 数字证书是存在有效期的,这也决定了app的预计生命周期,如果数字证书超期失效,则应用无法安装或者无法正常升级。
  5. Android提供了基于签名的权限机制,那么一个应用程序就可以为另一个以相同证书签名的应用程序公开自己的功能。以同一个证书对多个应用程序进行签名,利用基于签名的权限检查,你就可以在应用程序间以安全的方式共享代码和数据了。 不同的应用程序之间,想共享数据,或者共享代码,那么要让他们运行在同一个进程中,而且要让他们用相同的证书签名。

数字签名证书生成方法

声明:实验生成的keystore只是作为演示使用,并没有实际应用到项目中。大家参考时也要根据我的博客手工修改部分参数,切忌无脑照抄!

Android是使用标准的java工具keytooljarsigner来生成数字证书,而目前市场上第三方IDE(Android Studio和Eclipse)都是通过图形化系统帮我们封装了这两个工具的具体执行步骤。
接下来,我会介绍两种生成数字签名证书的方式,分别通过命令行和Android Studio进行生成。


命令行工具(keytool&&jarsinger)

由于Android的数字签名证书是用java标准工具生成的(路径为:$JAVA_HOME/bin目录下),那我们当然可以在命令行生成数字证书了,具体方法如下。

  1. 使用keytool生成数字签名证书。示例命令如下:
keytool -genkey -v -keystore my-release-key.keystore -alia
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值