获取28位hashkey值

做Facebook登录的时候,在Facebook开发者控制台那里要求填如APP的28位HashKey,在facebook新手教程那里有教我们怎么获取,一种是使用OPSSL,反正我没弄出来。另外一种,看样子是使用facebook的SDK自带的获取hash值的方法,因为我是使用cordova打包,所以没去尝试。网上搜索获取这个hashKey的答案很多,感觉大部分都是复制粘贴facebook新手教程的一句话就完事的,也有一些教了怎么使用OPENSSL,但是很麻烦,我也没能弄出来。最后使用了最简单的方法,那就是使用代码来获取,代码很简单,是从别处找到的,如下:

        try {
            int i = 0;
            PackageInfo info = getPackageManager().getPackageInfo( getPackageName(),  PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                i++;
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                String KeyHash = Base64.encodeToString(md.digest(), Base64.DEFAULT);

            }
        }
        catch (PackageManager.NameNotFoundException e) {  
            
        }
        catch (NoSuchAlgorithmException e) {  
            
        }

使用这段代码就能正确获取到hashKey。but,这里获取到的hashKey是默认的,debug模式下的,这时候如果对APP进行打正式包,再签名,你就会发现这个hashKey和你打出来的正式包不能对应上。

这时候为了能获取到正式包的hashKey,又得满世界去寻找怎么获取对应的keyStore的hashKey了,心塞应。等等,如果是这样,那么我给打好包的APP也加上这么一段获取hashKey的代码,然后在程序运行的时候执行一下,再把那个获取到的hashKey弹个土司看看或者放到文件里导出来看看,然后对比打正式包前后获取到的hashKey是否一样,如果不一样,那么,是不是就获取到正式包的正确的hashKey了?是的,是的,是的,重要的事情说三遍!这样做是能获取到正式包的正确的28位hashKey了!

使用eclipse的同学可以不用往下看了。使用android studio的同学,建议你往下看看,还有更方便快捷、不容易引起误会的办法。

如果你是使用android studio进行开发,你可以把你的debug模式的keyStore和release模式的keyStore设置成一样,也就是都设置成你自己生成的,用于APK发布的keyStore。操作步骤很简单,我懒得自己弄图了,请移步大神博客:http://blog.csdn.net/nimasike/article/details/51457229,可以通过下方的“点击打开链接”直接到达。我是从他学习到的。

 点击打开链接

谢谢观看到这里,不好意思,我有点太罗嗦了!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值