Android应用中的Android Hash密钥更改

时间:2013-12-18 10:09:42

标签: android facebook hash

我正在尝试使用我的debbug哈希密钥,即:“e3U9nzK7A8gyWoCiNUZQA / C + bZI =”。 但每次我把它放在我的Facebook应用程序的关键哈希部分内,它会自动更改为“e3U9nzK7A8gyWoCiNUZQA%2FC%2BbZI%3D”,这使得我的应用无用。 我使用两种方法获取此密钥,并返回相同的内容:keytool -exportcert -alias androiddebugkey -keystore~ / .android / debug.keystore | openssl sha1 -binary | openssl base64

和:

 private void getAppKeyHash() {
    try {
        PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md;

            md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            String something = new String(Base64.encode(md.digest(), 0));
            Log.d("Hash key", something);
        } 
    }
    catch (NameNotFoundException e1) {
        // TODO Auto-generated catch block
        Log.e("name not found", e1.toString());
    }

    catch (NoSuchAlgorithmException e) {
        // TODO Auto-generated catch block
        Log.e("no such an algorithm", e.toString());
    }
    catch (Exception e){
        Log.e("exception", e.toString());
    }

}

2 个答案:

答案 0 :(得分:1)

试试这个

 try {
                PackageInfo info = getPackageManager().getPackageInfo(com.domain,
                        PackageManager.GET_SIGNATURES);
                for (Signature signature : info.signatures) {
                    MessageDigest md = MessageDigest.getInstance("SHA");
                    md.update(signature.toByteArray());
                    Log.i("PXR", com.domain.Base64.encodeBytes(md.digest()));
                }
            } catch (NameNotFoundException e) {
            } catch (NoSuchAlgorithmException e) {
            }

答案 1 :(得分:0)

我有同样的问题,并意识到这是Facebook的一个错误。见link。非常讨厌。

修改

唯一可行的解​​决方案(但很难看)直到解决它似乎是强制通过Web界面登录,因为SSO是使用hashkey的。

如果使用登录按钮:

LoginButton authButton = (LoginButton) view.findViewById(R.id.authButton);
authButton.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO);

来源:Android - Force Facebook connection - Stack Overflow

修改2

虽然可以解决;我问了一个朋友(通过Skype,他在Mac上)为我添加它们。他设法做到了(但我不知道如何)。

编辑3

现在这个问题似乎已经为我解决了。输入的hashkeys不再被重写。无论是由fb-team解决还是只是需要我重新启动计算机,我都不知道。