最近做安卓项目中使用到了百度地图的API,在申请百度地图key的时候,需要我们填入“签名的SHA1”和“客户端包名”,然后百度为我们生成一个key。
于是就引发了思考,百度为何需要我们客户端签名的SHA1值呢?
第一想法就是:百度拿我们输入的参数SHA1和包名进行一些列算法计算,生成一个key返回给我们。
为了证明这个想法,写了demo进行测试,android获取包名的方法很简单,但是我们还需要从客户端中获取keystore的指纹SHA1。
进行各种资料的查找和分析,才得出方法。
一、首先,科普一下apk包下的META-INF目录
我们已经知道的是:Android对每一个Apk文件都会进行签名