📅  最后修改于: 2023-12-03 15:35:57.575000             🧑  作者: Mango
当我们在使用 Facebook 登录或分享等功能时,需要在 Android 应用中使用 Facebook SDK。为了保证应用与 Facebook 的通信安全,需要在 Facebook 开发者平台配置密钥哈希,并在应用中设置相应的内容。
密钥哈希是将一段文本通过哈希算法转化为固定长度的字节串,常用于验证消息的完整性和真实性。在 Android 应用中,常用密钥哈希作为加密和数字签名的关键。
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
在 Android 应用中设置密钥哈希,可通过以下两种方式:
在应用中集成 Facebook SDK 后,可以使用以下代码生成密钥哈希:
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.your.package.name",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash", Base64.encodeToString(md.digest(),
Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
将上述代码复制到应用中表示生成成功。产生的密钥哈希可在 Android Studio 的 Logcat 中查看。
手动生成密钥哈希,也可以使用以下命令:
keytool -exportcert -alias <alias_name> -keystore <keystore_path> | openssl sha1 -binary | openssl base64
其中 <alias_name>
表示密钥别名, <keystore_path>
表示密钥库路径。