Apk打包-签名过程
參考:http://blog.csdn.net/jiangwei0910410003/article/details/50402000
參考:http://blog.csdn.net/kickxxx/article/details/18252881
?概念:
數據摘要:對一個數據源進行一個算法之后得到一個摘要,也叫作數據指紋,不同的數據源,數據指紋肯定不一樣。
著名的摘要算法有RSA公司的MD5算法和SHA-1算法及其大量的變體。
數據簽名:非對稱密鑰加密技術 + 數字摘要技術 的結合。
如果消息的發送者有一天想給消息接收者發消息,在發送的信息中,除了要包含原始的消息外,還要加上另外一段消息。這段消息通過如下兩步生成:
1)對要發送的原始消息提取消息摘要;
2)對提取的信息摘要用自己的私鑰加密。
通過這兩步得出的消息,就是所謂的原始信息的數字簽名。
?數字證書 - Certificate
數字證書是一個經證書授權 中心數字簽名的包含公開密鑰擁有者信息以及公開密鑰的文件。CERT.RSA包含了一個數字簽名以及一個數字證書。
需要注意的是Android APK中的CERT.RSA證書是自簽名的,并不需要這個證書是第三方權威機構發布或者認證的,用戶可以在本地機器自行生成這個自簽名證書。
?
?
過程
1.生成MAINFEST.MF文件
遍歷文件內容做一次SHA1算法,就是計算出文件的摘要信息,然后用Base64進行編碼
2.生成CERT.SF文件(內容類似MAINFEST.MF)
1》計算這個MANIFEST.MF文件的整體SHA1值,再經過BASE64編碼后,記錄在CERT.SF主屬性塊(在文件頭上)的“SHA1-Digest-Manifest”屬性值值下
2》逐條計算MANIFEST.MF文件中每一個塊的SHA1,并經過BASE64編碼后,記錄在CERT.SF中的同名塊中,屬性的名字是“SHA1-Digest
3.生成CERT.RSA文件
用私鑰計算出簽名, 然后將簽名以及包含公鑰信息的數字證書一同寫入 ?CERT.RSA ?中保存。CERT.RSA是一個滿足PKCS7格式的文件。
?
轉載于:https://www.cnblogs.com/wjw334/p/7657394.html
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的Apk打包-签名过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zepto中的tap穿透
- 下一篇: Spring是如何校验XML的