android facebook - 为什么密钥哈希是不同的?

时间:2013-04-17 10:35:57

标签: android facebook

我正在尝试将FB集成到Android应用程序中。为此,我在Windows 7中使用cmd工具获取密钥哈希。

命令:

C:\adt-bundle-windows-x86-20130219\sdk\platform-tools>keytool -exportcert -alias
 andrpoiddebugkey -keystore "C:\Users\naresh.repalle\.android\debug.keystore" |
"C:\openssl\bin\openssl" sha1 -binary | "C:\openssl\bin\openssl" base64

输入密钥库密码:android

BASE_64_HASH_1

我将密钥哈希(从cmd)设置到fb developer控制台中的应用程序,在尝试在设备中运行此设置后,我收到错误,因为 remote_app_id不匹配存储的ID。

使用开发者控制台重新检查密钥哈希。我在我的应用程序中做了一些编码。使用这个我得到密钥哈希。我试图匹配这两个关键的哈希,但这些是不同的。因此,我将这两个设置为关键哈希,但这次我得到错误为“未指定节点”。为什么这两个关键的哈希是不同的?为什么会出现这些错误。任何人都可以帮助我。

//添加代码以打印出密钥哈希

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

    } 

这里我得到了密钥哈希为“BASE_64_ENCODED_HASH_2”。我是在同一台机器上做的。为什么这两个关键的哈希是不同的?

1 个答案:

答案 0 :(得分:0)

似乎只有在安装Facebook应用程序之后才会出现,在我这样做之前,我正在开发正常并执行而不在FB应用程序站点设置任何哈希值。但是在我安装了FB应用程序之后,我也进入了这个问题。如上所述,FB推荐的cmd字符串和使用上面代码的代码内部的哈希值不同。

但我添加了代码中生成的哈希值,似乎已将其清除。