揭开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值73b66ca14694f0ea248281214832c700
     2.获取CERT.RSA的全部内容得到的MD5值2432494f239760e7e735d5b9a1bc0496
     3.获取CERT.SF的全部内容得到的MD5值4f52cf48efabe3f65ade675b62b42bbe
     4.获取MANIFEST.MF的全部内容得到的MD5值aafe486292bb402c71fc53f2242947e3

三、总结

        经过各种测试发现:MD5签名只跟CERT.RSA(就是根据xxx.keystore生成的)有关,跟包名什么的没关系,方法一中输入包名也只是为了获取本apk下的CERT.RSA文件;但又不是由CERT.RSA的完整内容直接MD5生成的,更不是由debug.keystore/CERT.SF/MANIFEST.MF的完整内容直接MD5生成的。
       具体是根据CERT.RSA文件的哪部分或哪几部分内容生成的,需要继续研究keytool命令的具体代码,有哪位知道可以告知我,在此先谢谢了!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值