最近在进行做应用升级时签名冲突方面的问题,突然觉的有必要将apk签名的机制,简单整理一下,对于所有的android应用开发者应该都明白,在生产apk文件时,都必须对该文件进行签名,而所谓的签名其实也就是通过一种加密算法,来实现数据保护。
如何针对一个apk文件进行签名:
1:首先你要生成一对公私钥(其中私钥自己掌握<千万不能丢哦 >,公钥对外公开),这里我们不妨记为(pri ,pub)。
2:针对待签名的apk文件中的每一个文件(非文件夹非签名文件)进行SHA1加密,并进行Base64编码,这样我们将会得到一组Base64编码(一个文件对应一个),将上述得到的信息写入MANIFEST.MF
3:将2得到的信息利用私钥pri进行签名(也就是加密)。将得到的信息写入CERT.SF文件
4:将公钥pub以及加密算法写入CERT.RSA文件。
至此整个签名完毕
如何进行签名校验:
1:利用CERT.RSA中的公钥以及加密算法对CERT.SF进行解密,将解密后的结果与MANIFEST.MF进行比对,如果相同,则校验通过。否则,不能通过
4: