Android签名机制介绍:生成keystore、签名、查看签名信息等方法
来源:互联网 发布:金猪报喜源码下载 编辑:程序博客网 时间:2024/05/01 20:41
Android独有的安全机制,除了权限机制外,另外一个就是签名机制了。签名机制主要用在以下两个主要场合起到其作用:升级App和权限检查。
升级App
用户在升级一款已经安装过的App时,如果程序的修改来自于同一来源,则允许升级安装,否则会提示签名不一致无法安装的提示。
权限检查
我曾在Android Permission权限机制的具体使用一文中提过,对于申请权限的 protection level 为 signature 或者 signatureOrSystem 的,会检查权限申请者和权限声明者的证书是否是一致的。
至于签名机制的原理及其他作用,此不详述,本文主要介绍,签名文件key的生成、用key去签名apk文件及查看签名的方法。
生成keystore
创建keystore,需要用到keytool.exe (位于jdk_xx\jre\bin目录下),具体做法如下:
keytool -genkey -alias mykey -keyalg RSA -validity 40000 -keystore demo.keystore
说明:
-genkey 产生密钥
-alias mykey 别名 mykey
-keyalg RSA 使用RSA算法对签名加密
-validity 40000 有效期限4000天
-keystore demo.keystore
对apk进行签名
使用产生的keystore对apk签名,使用到的是jarsigner.exe ,该工具位于jdk_xx\bin目录下,命令如下:
jarsigner -verbose -keystore demo.keystore -signedjar test_signed.apk test.apk mykey
test_signed.apk是签名之后的文件test.apk是需要签名的文件
另外需要注意的是,如果你的jdk版本在1.7以上,你在对apk签名时,需要加上这个参数:
-digestalg SHA1 -sigalg MD5withRSA
否则同样会出现:Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]的错误。
查看签名信息
1、查看keystore的信息
keytool -list -keystore demo.keystore -alias mykey -v
2、查看keystore的公钥证书信息
keytool -list -keystore demo.keystore -alias mykey -rfc
(注:获取Base64格式的公钥证书,RFC 1421)
3、查看apk的签名信息
jarsigner -verify -verbose -certs your_apk_path.apk
- Android签名机制介绍:生成keystore、签名、查看签名信息等方法
- Android签名机制:生成keystore、签名、查看签名信息
- Android签名机制:生成keystore、签名、查看签名信息
- Android签名机制:生成keystore、签名、查看签名信息
- Android签名机制:生成keystore、签名、查看签名信息
- 查看Android keystore签名信息
- 查看keystore签名信息
- Android签名生成keystore
- Android KeyStore签名生成
- android--查看keystore文件签名信息
- 查看Android应用签名信息(keystore)
- 查看keystore的签名信息
- Android如何用命令行生成keystore和查看keystore签名
- Mac Android签名生成keystore
- Mac Android签名生成keystore
- Mac Android签名生成keystore
- 查看Android签名信息
- Android签名信息查看
- 002.Plus One
- 深入理解js构造函数
- AFNetworking 3.0迁移指南
- 系统Settrings分析及如何添加新的设置项
- 一句话设计模式
- Android签名机制介绍:生成keystore、签名、查看签名信息等方法
- mysql Error Code
- UIGestureRegnizer 的一些注意点
- ubuntu下安装opencv 读取摄像头
- 2016年3月22日 14:48:59
- 类才有设计模式?用方法不行么?
- Android-->UDP协议的Socket数据传输
- 存储过程基本概念和操作
- Jett+Spring MVC实现Excel导出