我正在尝试将Facebook应用到我的应用程序中以允许将内容发送到用户的墙上,更新状态等等。
所以下载后我被告知要使用密钥库文件获取密钥。我决定勇敢并创建自己的密钥库文件(稍后发布)并成功完成。
创建文件后虽然我遇到了各种问题,试图从中恢复密钥,但是我通过keytool /命令提示符输入了命令,并且它询问了我的密钥库密码......
输入我首先设置的密码后,我只得到了ascii符号和字母以及我的密钥库详细信息。出了什么问题?
更新: 好的,我知道您可能需要使用OpenSSL才能正确显示文本。我已经安装了OpenSSL但是如何使用它来获取Hash代码?
答案 0 :(得分:4)
从http://code.google.com/p/openssl-for-windows/downloads/list
在C盘中创建一个openssl文件夹
将Zip文件解压缩到openssl文件夹
打开cmd并粘贴:
keytool -exportcert -alias androiddebugkey -keystore~ / .android / debug.keystore | C:\ openssl \ bin \ openssl sha1 -binary | C:\ openssl \ bin \ openssl base64
如果需要输入密码android 你收到你的哈希码
答案 1 :(得分: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 apllication的android部分所需的密钥。每次使用不同的键槽来签署您的应用程序时,您还需要更改Facebook页面上的键。
答案 2 :(得分:0)
最好的方法。
*尝试{ 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)); } } catch(NameNotFoundException e){} catch(NoSuchAlgorithmException e){ } * 强>
有时候openssl会提供错误的keyhash。
答案 3 :(得分: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