生成keystore签名查看签名信息的方法简介
Android独有的安全机制,除了权限机制外,另外一个就是签名机制了。签名机制主要用在以下两个主要场合起到其作用:升级App和权限检查。
升级App
用户在升级一款已经安装过的App时,如果程序的修改来自于同一来源,则允许升级安装,否则会提示签名不一致无法安装的'提示。
权限检查
我曾在Android Permission权限机制的具体使用一文中提过,对于申请权限的 protection level 为 signature 或者 signatureOrSystem 的,会检查权限申请者和权限声明者的证书是否是一致的。
至于签名机制的原理及其他作用,此不详述,本文主要介绍,签名文件key的生成、用key去签名apk文件及查看签名的方法。
生成keystore
创建keystore,需要用到keytool.exe (位于jdk_xxjrebin目录下),具体做法如下:
复制代码 代码如下:
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_xxbin目录下,命令如下:
复制代码 代码如下:
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
推荐文章
湖南高考排名105480左右排位历史可以上哪些大学,具体能上什么大学2024-06-07 06:04:18
浙江高考排名115060左右排位综合可以上哪些大学,具体能上什么大学2024-06-07 05:59:29
湖南高考排名81440左右排位历史可以上哪些大学,具体能上什么大学2024-06-07 05:54:37
四川高考排名50780左右排位理科可以上哪些大学,具体能上什么大学2024-06-07 05:51:01
甘肃高考排名4380左右排位文科可以上哪些大学,具体能上什么大学2024-06-07 05:45:41
山西高考排名32220左右排位文科可以上哪些大学,具体能上什么大学2024-06-07 05:42:20
关于小学教学计划合集九篇2023-08-19 23:24:54
三年级美术教学计划三篇2023-08-11 00:14:59
一年级数学下册教学计划例文2023-08-26 06:23:21
追女孩子的经典个性签名2023-08-18 16:20:36
追女孩子的经典个性签名2023-08-18 16:20:36
霸气侧漏个性签名2023-08-11 11:36:26
精选超拽霸气个性签名2023-08-11 01:37:53
伤感个性句子集合35句2023-08-27 19:14:28
简洁的伤感个性句子汇编85句2023-08-19 05:56:02
实用的个性悲伤签名集锦75句2023-08-13 05:23:13