iOS 打包安装的过程中会对 ipa 包进行加解密验证。然而 ipa 安装包大小动辄就有十几 M,大的有好几 G,那如果对这么大的数据量进行加解密,肯定效率是非常低的。而信息摘要则是解决了加密数据过大的问题,其原理是对信息内容通过一个很难被逆向推导的公式计算得到一段哈希数值,它具有以下特点:
- 计算得到的哈希值大小固定,不受原本信息内容大小的影响;
- 不可逆,根据哈希值无法推断得到原本信息(实际上 MD5 以及 SHA-1 算法已经被证明可以被破解);
- 唯一性,原本信息内容一致,那么哈希值也一致;原数据不同,也不会存在重复的哈希结果。
使用信息摘要技术在数据加密传输时,发送方先对文件内容使用哈希算法进行信息摘要计算,再对摘要内容进行加密,之后将文件内容以及摘要内容(已加密)发送出去。
接收方收到数据后,先解密得到摘要内容,再依据相同的哈希算法对文件内容进行信息摘要计算,最后匹配接收到的哈希值与计算得到的哈希值是否一致,如果一致那就说明传输过程是安全的。
这样也就避免了对整体原数据加解密的计算过程,从而提高了验证效率。