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。

  1. http://slproweb.com/products/Win32OpenSSL.html下载并安装基于Windows 32或64位的OpenSSL(注意:下载并安装第一个可从该站点重新分离的Visual C ++ 208)
  2. 将安装的OpenSSL的bin目录放在windowspath中。
  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. 现在input密码“脸谱”没有双引号。
  6. 现在将生成一个散列键 在这里输入图像说明
  7. 最后去Facebook开发者网站。 确保你已经login到Facebook,并使用右上angular的下拉菜单,进入你的“开发者设置”:
  8. 进入开发人员设置后,从左侧的导航栏中select“示例应用程序”,然后将您的密钥哈希添加到您的个人资料中: 在这里输入图像说明

您可以从这里安装Open SSL,这应该使您的命令工作

我创build了一个批处理脚本facebookkeydebug.bat ,它返回所需的Facebook密钥散列。 只需编辑脚本,设置正确的path,密钥库名称并运行它。

 :: 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 

编辑:我发布了一些批处理脚本签署和获取Windows上的证书密钥: https : //github.com/petrnohejl/Android-Scripts

你可以使用下面的代码来获得哈希键:

 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的例子:

首先我们需要得到以下path:

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

打开SSLpath: C:\ OpenSSL-Win32 \ bin

(从http://www.openssl.org/安装);

密钥库path: C:\ Data \ ANDROID \ KEYSTORE \

2)然后去命令行并input:

cd [Javapath]

3)然后键入:

keytool.exe -exportcert -alias [别名] -keystore [密钥库path] \ debug.keystore | [打开SSLpath] \ openssl sha1 -binary | [打开SSLpath] \ bin \ openssl base64

4)你的密钥库的密码必须是必需的,然后你有你的Android密钥库相关的Hash Key密钥。

在这里输入图像说明

这是如何为Facebook设置Key Hash的文档:

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

您必须打开命令提示符窗口。 转到开始 – >运行,input“cmd”,然后按回车。 然后,您必须导航到keytool所在的文件夹(除非它在path中),然后键入该命令。

也就是说,假设该命令是为Windows而不是Linux。

最好的方法是使用代码生成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) { } } 

调用这个方法一次,生成密钥哈希,享受

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