Android APK 签名打包原理分析(二)【Android签名原理】

说到签名,从这个词来理解,正常个人需要签名的时候,一般是用来证明这是某个人的特属认证。
大家是否有印象?还记得我们之前在学习、总结网络相关知识的时候,说到过,客户端和服务端虽然通信数据上,可以采用对称加密和非对称加密组合去进行数据的加密,但是这时还有一个问题,就是双方身份的验证如何解决?这时公共密钥证书的出现解决了这个问题,CA证书往往是公开的数字认证机构颁发的。客户端和服务端都可以向CA,进行验证对方的真实身份。
我们说回android的签名,有了这些基础,其实就很好理解了,签名就是将apk中的代码、资源等加上特定的标签,证明这个apk的不可篡改性,不然apk发布之后,其他开发者可以重新任意发布,那么必然是灾难性的。

1.签名的基础知识

了解具体的android签名知识之前,我们先了解一下基础的概念。

1.1 消息摘要

消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。
消息摘要算法的特点有

  • 定长的摘要输出:无论输入的消息有多长,计算出来的消息摘要的长度总是固定的
  • 固定的输出:相同的明文,经过同一个摘要算法,得出的结果一定是一样的
  • 无碰撞发生:好的摘要算法,没有人能从中找到“碰撞”,虽然“碰撞”是肯定存在的
  • 单向:明文经过摘要算法得到字符串,那么无法根据字符串得出明文

说了摘要算

你可能感兴趣的:(Android进阶,android,签名,打包,消息摘要)