3

我正在尝试在我的应用程序中实现 Facebook,以允许将内容发送到用户的墙上、更新状态等。

所以在下载完这些东西后,我被告知要使用密钥库文件获取密钥。我决定勇敢地创建自己的密钥库文件(用于以后发布的东西)并且成功地做到了。

创建文件后,虽然我在尝试从中检索密钥时遇到各种问题,但我通过 keytool/命令提示符输入了命令,它要求我输入密钥库密码......

输入我首先设置的密码后,除了奇怪的 ascii 符号和字母以及我的密钥库详细信息之外,我什么也得不到。出了什么问题??

更新:好的,我知道您可能需要使用 OpenSSL 才能正确显示文本。我已经安装了 OpenSSL,但是如何使用它来获取哈希码?

4

4 回答 4

4
  1. 从以下位置下载 Openssl:http ://code.google.com/p/openssl-for-windows/downloads/list

  2. 在 C 盘创建一个 openssl 文件夹

  3. 将 Zip 文件解压到 openssl 文件夹

  4. 检查 keytool 可执行文件所在的目录是否在您的路径中。(例如,在我的 Windows 7 机器上,它位于 C:\Program Files (x86)\Java\jre6\bin 中。)
  5. 打开cmd并粘贴:

    keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | C:\openssl\bin\openssl sha1 -binary | C:\openssl\bin\openssl base64

如果需要,输入密码 android 你会收到你的哈希码

于 2012-11-15T03:21:54.753 回答
3

我在Linux下总是使用这种方法,因为它以原始方式失败:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore > key.out
cat key.out | openssl sha1 -binary > key.bin
cat key.bin | openssl base64

您将获得在 Facebook 应用程序的移动页面、android 部分输入所需的密钥。每次您使用不同的密钥库对您的应用程序进行签名时,您还需要在 facebook 页面上更改密钥。

于 2011-06-29T09:02:08.843 回答
0

您可以使用下面的代码来获取哈希键:

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

于 2014-03-23T06:25:41.027 回答
0

最好的方法。

*try { PackageInfo info = getPackageManager().getPackageInfo("你的包名", PackageManager.GET_SIGNATURES); for (签名签名: info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); Log.d("你的标签", Base64.encodeToString(md.digest(), Base64.DEFAULT)); } } 捕捉(NameNotFoundException e){} 捕捉(NoSuchAlgorithmException e){ }*

有时openssl 提供了错误的keyhash。

于 2013-11-07T15:16:03.427 回答