Google Play app签名密钥哈希

vky*_*vky 32 android google-play

我选择了谷歌播放应用程序签名,我知道谷歌更改了应用程序的签名密钥,我找到了沙1证书,但无法找到keyhash.

我如何获得我发布的应用程序的keyhash有没有办法从证书中提取它?

Ale*_*kov 132

您可以使用下一个命令将十六进制格式的SHA-1哈希(如Play控制台中所示)转换为base64哈希:

echo 33:4E:48:84:19:50:3A:1F:63:A6:0F:F6:A1:C2:31:E5:01:38:55:2E | xxd -r -p | openssl base64
Run Code Online (Sandbox Code Playgroud)

输出:

M05IhBlQOh9jpg/2ocIx5QE4VS4=
Run Code Online (Sandbox Code Playgroud)

例如,在设置Facebook应用程序时可以使用此哈希.

  • 适用于Windows中的git bash.你可能需要安装openssl.https://code.google.com/archive/p/openssl-for-windows/downloads (5认同)
  • 这是 Stackoverflow 上的最佳答案 (3认同)
  • @helloworld 不,它保持不变。 (2认同)

Cod*_*oza 44

您可以从Sha1证书签名中提取keyhash.键哈希通常以下列方式提取:

public static String getKeyHash(final Context context) {
    PackageInfo packageInfo = getPackageInfo(context, PackageManager.GET_SIGNATURES);
    if (packageInfo == null)
        return null;

    for (Signature signature : packageInfo.signatures) {
        try {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            return Base64.encodeToString(md.digest(), Base64.NO_WRAP);
        } catch (NoSuchAlgorithmException e) {
            Log.w(TAG, "Unable to get MessageDigest. signature=" + signature, e);
        }
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

您可以看到SHA-1版本的签名是Base64编码的.

在Google Play开发者控制台的App Signing菜单下,您会看到Sha-1证书签名,如下所示:

SHA1: 3B:DA:A0:5B:4F:35:71:02:4E:27:22:B9:AC:B2:77:2F:9D:A9:9B:D9
Run Code Online (Sandbox Code Playgroud)

基本上,您需要做的是将其更改为字节数组,并对该字节数组进行Base64编码.你可以这样做:

byte[] sha1 = {
    0x3B, (byte)0xDA, (byte)0xA0, 0x5B, 0x4F, 0x35, 0x71, 0x02, 0x4E, 0x27, 0x22, (byte)0xB9, (byte)0xAc, (byte)0xB2, 0x77, 0x2F, (byte)0x9D, (byte)0xA9, (byte)0x9B, (byte)0xD9
};
Log.e("keyhash", Base64.encodeToString(sha1, Base64.NO_WRAP));
Run Code Online (Sandbox Code Playgroud)

你可以将这个keyhash注册到facebook android登录设置或任何你喜欢的地方.

  • 您可以使用以下在线工具:https://cryptii.com/base64-to-hex.将其设置为ENCODE并将HEX放在左侧并在右侧获得HASHKEY (8认同)

ela*_*leb 5

最简单的办法是复制Facebook的错误信息,并复制他们正期待从那里得到的keyhash。

只要确保您使用的是Google Play下载的应用即可:)在此处输入图片说明