Google Play 应用签名密钥哈希

Google play app signing key hash(Google Play 应用签名密钥哈希)
本文介绍了Google Play 应用签名密钥哈希的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我选择了 google play 应用签名,我了解 google 更改了应用的签名密钥,我找到了 Sha 1 证书但找不到 keyhash.

I have opted for google play app signing and i understand that google changes the signing keys for the app and I found the Sha 1 certificate but couldnt find the keyhash .

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

How can i get the keyhash of my released app is there a way to extract it from the certificate?

推荐答案

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

You can extract keyhash from the Sha1 certificate signature. Key hashes are usually extracted in the following way:

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;
}

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

You can see that SHA-1 version of signature is Base64 encoded.

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

Under App Signing menu in Google play developer console, you will see Sha-1 certificate signature that looks like this:

SHA1: 3B:DA:A0:5B:4F:35:71:02:4E:27:22:B9:AC:B2:77:2F:9D:A9:9B:D9

基本上,您要做的就是将其更改为字节数组,然后 Base64 对该字节数组进行编码.您可以执行以下操作:

Basically, what you have to do is to change this into a byte array and Base64 encode that byte array. You can do something like:

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));

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

You can register this keyhash to facebook android login settings or wherever you like.

这篇关于Google Play 应用签名密钥哈希的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

How to target newer versions in .gitlab-ci.yml using auto devops (java 11 instead of 8 and Android 31 instead of 29)(如何在.gitlab-ci.yml中使用自动开发工具(Java 11而不是8,Android 31而不是29)瞄准较新的版本)
Android + coreLibraryDesugaring: which Java 11 APIs can I expect to work?(Android+core LibraryDesugering:我可以期待哪些Java 11API能够工作?)
How to render something in an if statement React Native(如何在If语句中呈现某些内容Reaction Native)
How can I sync two flatList scroll position in react native(如何在本机Reaction中同步两个平面列表滚动位置)
Using Firebase Firestore in offline only mode(在仅脱机模式下使用Firebase FiRestore)
Crash on Google Play Pre-Launch Report: java.lang.NoSuchMethodError(Google Play发布前崩溃报告:java.lang.NoSuchMethodError)