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.