J'ai opté pour la signature de l'application Google Play et je comprends que Google modifie les clés de signature de l'application et que j'ai trouvé le certificat Sha 1, mais que je n'ai pas trouvé le keyhash.
Comment puis-je obtenir le keyhash de mon application publiée? Existe-t-il un moyen de l'extraire du certificat?
Vous pouvez extraire le keyhash de la signature de certificat Sha1 . Les hachages de clés sont généralement extraits de la manière 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 la version SHA-1 de la signature est codée en Base64.
Sous le menu Signature de l'application dans la console développeur de Google Play, vous verrez la signature du certificat Sha-1 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 devez faire est de changer cela en un tableau d'octets et de coder en base64 ce 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 enregistrer ce keyhash dans les paramètres de connexion à Facebook Android ou à tout autre endroit.
Vous pouvez convertir le hachage SHA-1 au format hexadécimal (comme dans Play console) en base64 en utilisant la commande suivante:
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
Sortie:
M05IhBlQOh9jpg/2ocIx5QE4VS4=
Ce hachage peut être utilisé par exemple lors de la configuration de l'application Facebook.