簡體   English   中英

Facebook Android SDK的密鑰哈希

[英]Key hash for Facebook Android SDK

我無法弄清楚如何獲得使用Facebook Android SDK所需的Key Hash。 我發現我可以使用keytool這些命令:

  keytool -exportcert -alias [alias]
 -keystore [keystore] | openssl sha1 -binary | openssl enc -a -e

唯一的問題是我不知道在哪里插入這個,我嘗試通過命令窗口(win7),我嘗試打開文件keytool.exe。

您可以從此處安裝Open SSL,這將使您的命令工作

我創建了一個批處理腳本facebookkeydebug.bat ,它返回所需的Facebook密鑰哈希值。 只需編輯腳本,設置正確的路徑,密鑰庫名稱並運行它。

:: Getting Android key hash for Facebook app on Windows
:: Requirement: OpenSSL for Windows (http://code.google.com/p/openssl-for-windows/downloads/list)
:: Usage: set paths and run facebookkeydebug.bat

@echo Exporting keystore cert
keytool -exportcert -alias androiddebugkey -keystore C:\Users\myusername\.android\debug.keystore -storepass android -keypass android > debug.keystore.bin

@echo Converting to sha1
C:\PROGRAMS\openssl-0.9.8k_X64\bin\openssl sha1 -binary debug.keystore.bin > debug.keystore.sha1

@echo Converting to base64
C:\PROGRAMS\openssl-0.9.8k_X64\bin\openssl base64 -in debug.keystore.sha1 -out debug.keystore.base64

@echo Done, Android hash key for Facebook app is:
C:\PROGRAMS\openssl-0.9.8k_X64\bin\openssl base64 -in debug.keystore.sha1
@pause

編輯:我發布了一個帶有一些批處理腳本的repo,用於在Windows上簽名和獲取證書密鑰: https//github.com/petrnohejl/Android-Scripts

  1. http://slproweb.com/products/Win32OpenSSL.html下載並安裝基於Windows 32或64位的OpenSSL。(注意:也可以從該站點下載並安裝第一個可重新編譯的Visual C ++ 208)
  2. 將已安裝的OpenSSL的bin目錄放在windows路徑中。
  3. 打開命令提示符並轉到C:\\ Users {User_Name} .android
  4. 現在把這個命令放在cmd“ keytool -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64 ”。(參考https://developers.facebook.com/docs/android/getting-started#samples
  5. 現在輸入密碼“facebook”沒有雙引號。
  6. 現在將生成一個哈希鍵 在此輸入圖像描述
  7. 最后去Facebook開發者網站。 確保您已登錄Facebook,並使用右上角的下拉菜單轉到“開發者設置”:
  8. 進入開發人員設置后,從左側導航欄中選擇“示例應用程序”,然后將密鑰哈希添加並保存到您的個人資料中: 在此輸入圖像描述

您可以使用下面的代碼來獲取哈希鍵:

try {

   PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), 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) {
   Log.e("name not found", e.toString());
  } catch (NoSuchAlgorithmException e) {
   Log.e("no such an algorithm", e.toString());
  }

參考:

http://limbaniandroid.blogspot.com/2013/04/how-to-get-hash-key-for-integarte.html

為了方便起見 -

keytool.exe -list -alias androiddebugkey -keystore debug.keystore -v

這應該為您提供所需的指紋,而無需安裝openssl的麻煩。

例如

Certificate fingerprints:
         MD5:  1A:5E:AA:CB:1A:CF:68:F0:8B:DA:D8:BC:EE:4F:BF:EE
         SHA1: D2:89:D1:5A:BC:F8:E3:E5:62:4D:DD:20:DD:96:CD:AB:51:A1:C1:7F
         Signature algorithm name: SHA1withRSA
         Version: 3

這是如何從Keystore獲取Key Hash的示例:

首先,我們需要獲得以下路徑:

Java路徑: C:\\ Program Files \\ Java \\ jdk1.6.0_35 \\ jre \\ bin

打開SSL路徑: C:\\ OpenSSL-Win32 \\ bin

(安裝自: http//www.openssl.org/

密鑰庫路徑: C:\\ Data \\ ANDROID \\ KEYSTORE \\

2)然后轉到命令行並鍵入:

cd [Java路徑]

3)然后鍵入:

keytool.exe -exportcert -alias [alias name] -keystore [Keystore Path] \\ debug.keystore | [打開SSL路徑] \\ openssl sha1 -binary | [打開SSL路徑] \\ bin \\ openssl base64

4)必須要求密鑰庫的密碼,然后您有與您的Android密鑰庫相關的Hash Key密鑰。

在此輸入圖像描述

這是如何為Facebook設置Key Hash的文檔:

https://developers.facebook.com/docs/android/getting-started#release-key-hash

最好的方法是使用代碼生成Key-Hash:

 public static void generateKeyHash(Context context) {
    try {
        PackageInfo info = context.getPackageManager().getPackageInfo(
                "com.example.user2.testapp",
                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 (PackageManager.NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }
}

調用此方法一次並生成key-hash,享受

您必須打開命令提示符窗口。 轉到start-> run並輸入'cmd'並按Enter鍵。 然后,您必須導航到keytool所在的文件夾(除非它在您的路徑中),然后鍵入該命令。

也就是說,假設該命令適用於Windows而不是Linux。

C:\\ Program Files \\ Java \\ jdk1.6.0_22 \\ bin \\ keytool.exe -exportcert -alias“typeYouraliasname” - 密鑰庫的密鑰庫位置 C:\\ OpenSSL-Win32 \\ bin \\ openssl sha1 -binary | C:\\ OpenSSL-Win32 \\ bin \\ openssl base64

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM