«

揭开Android获取应用签名的神秘面纱

时间:2024-3-2 18:54     作者:韩俊     分类: Android


一、问题

在国内各大应用市场或facebook为自己的应用申请参数时,基本都会要求填写一个签名(facebook的说法是keyhash),那么这个签名(或keyhash)是如何获得的呢?

二、方法

方法一、在安装需要获取签名的apk后,使用各平台提供的类似gen_signatures.apk工具,安装后打开输入包名来得到MD5签名;

使用新浪微博提供的app_signatures.apk生成的签名如下:


方法二、在使用Eclipse的Android Tools导出签名包的最后一步(选择APK存放路径后)时,Eclipse提供的MD5签名。

签名如下:



   方式三、在cmd中输入命令keytool - printcert - file [加压apk后文件详细路径]/META-INF/CERT.RSA


  自己测试失败的其他猜想:
 1.获取debug.keystore的全部内容得到的MD5&#20540;73b66ca14694f0ea248281214832c700<br />
 2.获取CERT.RSA的全部内容得到的MD5&#20540;2432494f239760e7e735d5b9a1bc0496<br />
 3.获取CERT.SF的全部内容得到的MD5&#20540;4f52cf48efabe3f65ade675b62b42bbe<br />
 4.获取MANIFEST.MF的全部内容得到的MD5&#20540;aafe486292bb402c71fc53f2242947e3


三、总结
经过各种测试发现:MD5签名只跟CERT.RSA(就是根据xxx.keystore生成的)有关,跟包名什么的没关系,方法一中输入包名也只是为了获取本apk下的CERT.RSA文件;但又不是由CERT.RSA的完整内容直接MD5生成的,更不是由debug.keystore/CERT.SF/MANIFEST.MF的完整内容直接MD5生成的。

   具体是根据CERT.RSA文件的哪部分或哪几部分内容生成的,需要继续研究keytool命令的具体代码,有哪位知道可以告知我,在此先谢谢了!!!

标签: android

热门推荐