程序员

Android签名机制

2018-04-19  本文已影响128人  erki_stwee

文章摘要

Android签名机制流程图.PNG
为何需要Android签名

防止APK被恶意篡改后,二次签名打包。

基本概念

1.数据摘要:本质上是一种算法;原始信息按照一定算法规则提取信息,提取出来的信息就是数据摘要。
特点:

2.签名文件和证书文件:必定成对出现;
数字签名:非对称加密技术和数据摘要的一个应用,可以解决可靠通信的问题。
数字证书:主要用来解决公钥安全发放的问题。

什么是可靠通信问题?
1.确定消息来源是发送者。
2.传递过程中不能被第三方篡改,即使篡改了,也可以发觉。

签名文件和证书文件流程图.PNG

3.jarsign和signapk
jarsign:是jdk自带的工具。我们平时打包基本上都是采用jarsign。
signapk:专门对apk文件进行签名,可以减少apk体积。相对于jarsign更加安全。在Android6.0以及更低的版本上安装需要做一定的处理。
Android的APK两种签名

4.keystore文件和pk8、x509.pem文件
jarsign:签名使用的是keystore文件。
signapk:签名使用的是pk8和x509.pem文件。
keystore和pk8,x509.pem文件可以互相转换。
Android创建自己的pk8和x509.pem文件并给app签名

5.如何手动签名apk
signapk签名需要手动下载工具,然后执行相应的命名

signapk命名行语句.PNG singapk签名与jarsign签名打包对比.PNG
Android签名流程(简述)
通过解压apk文件,存在一个META-INF目录。这里面包括(MANIFEST.MF,CERT.SF,CERT.RSA) META-INFO.PNG

MANIFEST.MF:apk文件中所有文件的数据摘要内容。
CERT.SF:每个块内容的数据摘要信息。
CERT.RSA:保存签名以及公钥公钥信息的数字证书。

上一篇 下一篇

猜你喜欢

热点阅读