Android簽名方案經(jīng)歷幾個(gè)版本,分別為v1,v2,v3,我們分別講下它們的實(shí)現(xiàn)。
V1簽名方案
1.計(jì)算每個(gè)文件的SHA-1摘要,進(jìn)行Base64編碼后寫(xiě)入MANIFEST.MF文件;
2.計(jì)算整個(gè)MANIFEST.MF文件的SHA-1摘要,進(jìn)行Base64編碼后寫(xiě)入.SF文件;
3.計(jì)算MAINFEST.MF文件中每一塊摘要的SHA-1摘要,進(jìn)行BASE64編碼后寫(xiě)入.SF文件;
4.計(jì)算整個(gè).SF文件的數(shù)字簽名(先摘要再私匙加密);
5.將數(shù)字簽名和X.509開(kāi)發(fā)者數(shù)字證書(shū)寫(xiě)入.RSA文件;
V2簽名方案
將apk包按照1MB大小分割為多個(gè)塊,然后計(jì)算每個(gè)塊的摘要,生成一個(gè)簽名塊,然后計(jì)算簽名塊中所有的摘要的簽名,最后添加X(jué).509開(kāi)發(fā)者數(shù)字證書(shū)。
V3簽名方案
在v2簽名塊的的基礎(chǔ)上增加一個(gè)attr塊,里面保存了多個(gè)level的證書(shū)信息,可以實(shí)現(xiàn)證書(shū)的替換。