59 votes

Google jouer application de signature clé hh

J'ai opté pour google play app signature et je comprends que Google change les clés de signature pour l'application et j'ai trouvé le certificat Sha 1, mais ne pouvait pas trouver le keyhash .

Comment puis-je obtenir le keyhash de mon application libérée est-il un moyen de l'extraire du certificat?

243voto

Alex Vasilkov Points 651

Vous pouvez convertir le hh SHA-1 en format hexagonal (comme on le trouve dans la console Play) en hh de base64 en utilisant la commande suivante :

Sortie:

Ce hh peut être utilisé par exemple lors de la configuration de l'application Facebook.

54voto

CoderSpinoza Points 1376

Vous pouvez extraire keyhash de la Sha1 signature de certificat. Clé de hachages sont généralement extraites de la façon suivante:

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

Vous pouvez voir que SHA-1, version de signature est encodé en Base64.

En vertu de l'Application de la Signature de menu dans Google play developer console, vous verrez Sha-1 certificat de signature qui ressemble à ceci:

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

Fondamentalement, ce que vous avez à faire est de changer cela dans un tableau d'octets et de l'encoder en Base64 que le tableau d'octets. Vous pouvez faire quelque chose comme:

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

Vous pouvez vous inscrire à cette keyhash à facebook android les paramètres de connexion ou partout où vous le souhaitez.

11voto

eladleb Points 850

La façon la plus simple serait de copier le message d'erreur de Facebook et de copier le keyhash qu'ils s'attendaient à obtenir à partir de là.

Assurez-vous d'utiliser votre application téléchargée Google Play :)enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X