Facebook keyhash 获取方法总结(含 通过google play后台下载的 .der证书获取 keyhash)

由于google play 推荐 发布签名证书(App签名证书)用google play后台生成的,而google play 后台生成我们可以看到的,直接是 签名证书(签名证书可以下载),而无法拿到google后台生成的 .keystore 文件,而facebook 获取 keyhash 官方给出了两个方法:

方法一:

private void facebookHashKey() {
    try {
         PackageInfo info = getPackageManager().getPackageInfo("your.package.name", PackageManager.GET_SIGNATURES);
         for (Signature signature : info.signatures) {
              MessageDigest md = MessageDigest.getInstance("SHA");
              md.update(signature.toByteArray());
              Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
         }
     } catch (NameNotFoundException e) {
     } catch (NoSuchAlgorithmException e) {
     }
 }

方法二:

      电脑上配置好openssl 环境 的前提下 执行命令

 keytool -exportcert -aliasandroiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64

无论方法一还是方法二都需要有 .keystore(或.jks) 文件的前提下才可获取,而使用 google play 后台生成的签名证书是拿不到 .keystore(或.jks) 文件,只能下载 .der文件的证书,所以无法通过Facebook官方给出的方法获取到 keyhash。

能不能通过 .der文件证书来生成 keyhash值能?答案: 能

方法如下:

     电脑上配置好openssl 环境 的前提下 执行命令

openssl sha1 -binary deployment_cert.der | openssl base64

说明:deployment_cert.der 为从google play 后台下载的 google play 用于发布的签名证书

 

猜你喜欢

转载自blog.csdn.net/changcsw/article/details/88720357