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