2016-03-04 43 views
0

我正在創建使用Facebook登錄SDK的Android應用程序。爲什麼keytool生成不同的facebook androiddebugkey哈希?

我想生成調試密鑰散列。在Facebook網站上,我發現這個命令:

密鑰工具-exportcert -alias androiddebugkey -keystore %HOMEPATH%.android \ debug.keystore | openssl sha1 -binary | OpenSSL的 的base64

我修改這個命令我的電腦上工作:

密鑰工具-exportcert -alias androiddebugkey -keystore C:\用戶\ redio \ .android \ debug.keystore | 「C:\ OpenSSL的\ BIN \ OpenSSL的」 SHA1 -binary | 「C:\ OpenSSL的\ BIN \ OpenSSL的」 的base64

接下來,我輸入的密碼:安卓

此命令生成此哈希:QUhvjKstiP5gc7hPEzwF89mwHws =

然後我把它粘貼到Facebook開發者控制檯 和Facebook仍然說,密鑰哈希無效。我知道我可以從警告消息中複製密鑰哈希,並將其粘貼到Facebook開發者控制檯中。但我的問題是爲什麼keytool生成錯誤的密鑰哈希?

+0

我之前有過這個,這是因爲我輸入了錯誤的密碼,或者我使用了錯誤的調試密鑰庫。 – StuStirling

+0

是的,但我多次檢查:/ – RediOne1

+0

我有同樣的問題,我alwyas最終從複製它從警告味精 –

回答

2

我也有很多問題讓keytool生成一個有效的散列,但我實現了下面找到的方法,並且能夠註銷一個有效的散列。代碼的確切來源有點不清楚,但this blog post是一個很好的猜測。

public static String printKeyHash(Activity context) { 
    PackageInfo packageInfo; 
    String key = null; 
    try { 
     //getting application package name, as defined in manifest 
     String packageName = context.getApplicationContext().getPackageName(); 

     //Retriving package info 
     packageInfo = context.getPackageManager().getPackageInfo(packageName, 
       PackageManager.GET_SIGNATURES); 

     Log.e("Package Name=", context.getApplicationContext().getPackageName()); 

     for (Signature signature : packageInfo.signatures) { 
      MessageDigest md = MessageDigest.getInstance("SHA"); 
      md.update(signature.toByteArray()); 
      key = new String(Base64.encode(md.digest(), 0)); 

      // String key = new String(Base64.encodeBytes(md.digest())); 
      Log.e("Key Hash=", key); 
     } 
    } catch (PackageManager.NameNotFoundException e1) { 
     Log.e("Name not found", e1.toString()); 
    } 
    catch (NoSuchAlgorithmException e) { 
     Log.e("No such an algorithm", e.toString()); 
    } catch (Exception e) { 
     Log.e("Exception", e.toString()); 
    } 

    return key; 
} 
+1

這是**非常好**,你已經顯示/鏈接你得到這個代碼。你是我見過的(迄今爲止)唯一做過正確事情的人,並說明他們找到代碼的來源。不幸的是,你發現的源代碼也複製了代碼。我不知道原始來源。然而,[最早發現的是2013-07-10](http://stacktips.com/tutorials/android/how-to-get-key-hashes-for-android-facebook-app)。您可能想要在那裏提供一個指向代碼的指針。 – Makyen

相關問題