Я использую следующую команду для генерации ключевого хэша для консоли Facebook для Android
.\keytool.exe -exportcert -alias app_android -keystore release.keystore | openssl sha1 -binary | openssl base64
Как сказано в Facebook разработчикам SDK help
В соответствии с страницей справки, а также консолью разработчиков хеш-ключ должен содержать 28 символов, однако keytool генерирует 32-символьный длинный ключ.
Версия Java: jdk1.8.0_31 ОС: Windows 7
Генерация для android.
ИЗМЕНИТЬ
В соответствии с предложением от @Shreyash-mashru я использовал следующий код, чтобы получить keyhash
try {
PackageInfo info = getPackageManager().getPackageInfo(
"my.package.name",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.e("KeyHash:", "++++++++++++++++++++++++++++++++++++++" + Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (PackageManager.NameNotFoundException e) {
Log.e("KeyHash:", "++++++++++++++++++++++++++++++++++++++" + e.toString());
} catch (NoSuchAlgorithmException e) {
Log.e("KeyHash:", "++++++++++++++++++++++++++++++++++++++" + e.toString());
}
Однако, если кто-то еще может помочь мне понять, почему инструмент командной строки генерирует 32 char хэша с длинными ключами вместо 28...