apk包中包含的是什么?签名的机制是什么?

Manifest.xml配置文件

dex文件

META签名加密文件

三方包

res资源文件 

resources.arsc


参考  https://www.cnblogs.com/jenson138/p/4220668.html



签名的流程

首先要理解三个概念

数据摘要,数字签名,证书

数据摘要主要是运用算法给资源生成一个同等长度的字符串

著名的摘要算法有RSA公司的MD5算法和SHA-1算法及其大量的变体。

消息摘要的主要特点有:
1)无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。例如应用MD5算法摘要的消息有128个比特位,用SHA-1算法摘要的消息最终有160比特位的输出。
2)一般来说(不考虑碰撞的情况下),只要输入的原始数据不同,对其进行摘要以后产生的消息摘要也必不相同,即使原始数据稍有改变,输出的消息摘要便完全不同。但是,相同的输入必会产生相同的输出。

3)具有不可逆性,即只能进行正向的信息摘要,而无法从摘要中恢复出任何的原始消息。


数字签名  用私匙加密的数据摘要

我的理解是来源是申请签名的人,申请签名会生成一对公匙+私匙,然后申请人使私匙+数据摘要加密,加密后的东西在加上公匙一起给apk,这样就完成了数字签名的工作


证书

我们怎么知道公匙的合法性呢,就是通过证书


通过jarsigner会生成三个文件分别为.MF .SF .DSA

.MF是资源的摘要

.SF是依据.MF摘要来生成的 签名文件

.DSA是证书和公匙信息





参考 https://blog.csdn.net/jiangwei0910410003/article/details/50402000

参考 https://blog.csdn.net/chenzhen1080/article/details/73187687

参考 https://blog.csdn.net/kickxxx/article/details/18252881

猜你喜欢

转载自blog.csdn.net/lovelyprogrammer/article/details/80737995