无效的密钥散列,密钥散列与任何存储的密钥散列都不匹配

时间:2014-06-20 07:03:59

标签: android facebook

我在facebook上创建了一个应用程序。我已经正确添加了keyhash并且应用程序运行良好但是当我今天来到并尝试再次运行时它给了我这个错误。 enter image description here

这是第二次发生。当我得到这个错误时,我删除了应用程序并再次添加它并再次开始工作,并且我不能一次又一次地执行此操作。

还有一件事,他在错误中提到的密钥哈希与我在应用程序中添加的不一样,如果我去应用程序设置密钥哈希在那里是正确的。

9 个答案:

答案 0 :(得分:5)

无需一次又一次地从Facebook开发者网站删除应用程序。 你需要的是去你的终端(Mac或Linux)并输入:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

并且Window的用户打开cmd并输入:

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl
base64

在此之后,系统会要求您输入"输入密钥库密码:",为此请记住仅输入android。现在在Facebook开发者网站上使用此密钥哈希(注意:此密钥哈希将与你得到错误的密钥哈希一样)。 大多数人都要求从Facebook开发者网站删除应用程序并再次制作新应用程序,但请相信我这实际上是你必须要做的。

答案 1 :(得分:4)

删除应用程序并尝试按照此方法创建新的哈希密钥 method

答案 2 :(得分:3)

使用以下版本之一:openssl-0.9.8e _X64.zip

您应使用openssl-0.9.8k_X64.zip

差异是 k e

再次使用生成密钥 cmd上的keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

答案 3 :(得分:1)

您必须再次执行以下步骤: -

  1. 删除Facebook网站上的应用程序(developers.facebook.com)
  2. 删除文件debug.keystore。
  3. 生成新密钥(再次运行您的应用)
  4. 在developers.facebook.com上创建一个新应用并添加新的哈希键
  5. 重新运行您的应用
  6. SUCCES!
  7. 以及更多信息,请参阅以下链接: -

    https://developers.facebook.com/docs/android/getting-started/

答案 4 :(得分:1)

将以下代码添加到onCreate(): *不要忘记更改包名称。

try {
    PackageInfo info = getPackageManager().getPackageInfo(
            "com.yours.package", 
            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) {

}

来源:https://developers.facebook.com/docs/android/getting-started/

答案 5 :(得分:0)

这个错误的唯一原因是Hash密钥对于每个开发环境都不同,这意味着如果您在不同的机器上工作,每台PC / Mac都会生成自己的哈希密钥。

现在解决方案:

在两个简单的步骤中,您可以修复此错误,只需在您的Facebook开发人员帐户中写入哈希密钥,如附加图像:

第一步:您将在此处看到HASH KEY注意帽键,然后按照下一步操作 enter image description here

上一步:在 Key Hashes 字段中记下复制的哈希键。喜欢 enter image description here

无需删除或重新配置应用。

感谢。

答案 6 :(得分:0)

嗨在我的情况下,这是为生产生成发布密钥的问题。释放apk以发布商店需要您生成发布密钥。 有关详细信息,请访问Facebook link

答案 7 :(得分:0)

就我而言,我在创建私钥后更改了程序包名称,因此,密钥哈希错误/无效。

答案 8 :(得分:0)

搜索两个小时后,我发现了一些基本的期望。 您遵循的所有文档,但仍然发现了关键问题 -------->> 您必须尝试通过尝试使用简单的本机反应 -------->> LoginManager.loginWithPermission(["public_profile"]). than(d => console.log(d)) -------->> 如果它显示密钥不匹配或无效密钥哈希的错误,请尝试使用 keytool -exportcert -alias androiddebugkey -keystore android/app/debug.keystore | openssl sha1 -binary | openssl base64 而不是 facebook 提供的路径,如 ~/.andorid/debug.keystore ..