keytool返回一个对Facebook来说太短的哈希值

时间:2016-02-04 13:22:08

标签: android facebook openssl single-sign-on keytool

我使用Window 7和android studio来构建我的应用程序。 我在facebook SSO中用于登录系统。我按照步骤 如下面的教程。

How to create Android Facebook Key Hash?

我将命令如下输入我的powershell

  

$ keytool -exportcert -alias androiddebugkey -keystore“C:\ Documents and Settings \ Administrator.android \ debug.keystore”| “C:\ OpenSSL \ bin \ openssl”sha1 -binary |“C:\ OpenSSL \ bin \ openssl”base64

然后powershell返回一个短于28个字符的哈希值,这是Facebook不接受的。

如何生成Facebook接受的密钥?

3 个答案:

答案 0 :(得分:1)

当我提供无效的密钥库路径时,我遇到了同样的问题 - 没有错误消息,只是奇怪的八字符长字符串。切换到

的路径
C:\Users\Username.android\debug.keystore

解决了我的问题。

答案 1 :(得分:0)

您需要使用以下代码生成的hashkey:

public static void printHashKey(Context pContext) {
    try {
        PackageInfo info = getPackageInfo(pContext, PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            String hashKey = new String(Base64.encode(md.digest(), 0));
            Log.i(TAG, "printHashKey() Hash Key: " + hashKey);
        }
    } catch (NoSuchAlgorithmException e) {
        Log.e(TAG, "printHashKey()", e);
    } catch (Exception e) {
        Log.e(TAG, "printHashKey()", e);
    }
}

答案 2 :(得分:0)

当我使用openssl-0.9.8k_WIN32.zip,只生成TenDigitHash ==然后我返回使用openssl-0.9.8e_WIN32.zip时,它发生在我身上,因此它按预期生成了哈希。我使用的是windows32bit