Android生成keystore

本文介绍了Android应用程序在发布前使用证书进行数字签名的过程及其重要性。文章详细解释了签名的作用、不同保护级别的含义,并提供了生成正式版keystore的两种方法:命令行方式与Eclipse导出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android应用程序在发布时需要使用一个证书对应用进行数字签名,该证书的私钥由开发人员所有。这样做可以防止第三方或恶意软件替换我们的应用,因为相同包名如果签名不同,则不可以覆盖安装,同样当我们的App升级时也会检验,只有签名相同才会正常升级。签名的另一个作用是允许代码和数据共享,Android有一个基于签名的Permission标签:

<permission android:protectionLevel="normal" />

其中protectionLevel4种值:normaldangeroussignaturesignatureOrSystem

Normal是缺省值,表示权限是低风险的。

dangerous表示权限是高风险的。

Signature表示仅仅当应用程序的签名与声明该权限的App的数字签名相同时,才能将权限授给它。

signatureOrSystem表示将权限授给具有相同数字签名的应用程序或Android包,这种应用情况比较少,比如多个供应商需要通过系统映像共享功能时。

其实我们在调试应用的时候,也用到了签名,只不过我们用的是debug.keystore,如果我们的App要发布,那么如何生成一个正式版的keystore呢?

 

一、命令行方式

JDK的安装目录的bin文件夹下有一个工具:keytool.exe,比如在我的电脑路径是C:\Program Files\Java\jdk1.6.0_27\bin\keytool.exe,可以使用它来生成keystore。具体步骤如下:

1.打开命令行窗口,进入上述路径的bin目录

2.键入命令:keytool -genkey -alias hence -keyalg RSA -validity 40000 -keystore hence.keystore

具体含义:

      -genkey 表示产生密钥

       -alias hence 别名 hence

       -keyalg RSA 表示使用RSA算法对签名加密

       -validity 40000 表示有效期限 40000

       -keystore hence.keystore 

3.截图如下:


4.执行完上述操作后就可以在C:\Program Files\Java\jdk1.6.0_27\bin目录下生成一个名为hence.keystore的文件,之后我们就可以使用这个文件对我们的App进行签名了。

 

二、使用Eclipse导出

选中Android项目,右键——Android Tools——Export Signed Application Package,之后在Keystore Selection界面,选择Create new keystore而不是Use existing keystore,后续都是一些可视化的操作,其实就是第一种命令行方式输入的那些内容,包括密码、单位名称、国家等。

这种方式按步骤提示即可完成操作,因此不再截图。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值