Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓Facebook登录的密钥哈希_Android_Facebook_Hash - Fatal编程技术网

Android 安卓Facebook登录的密钥哈希

Android 安卓Facebook登录的密钥哈希,android,facebook,hash,Android,Facebook,Hash,我正在尝试使用Facebook实现登录。我对哈希键有问题。 首先,我已将OpenSSL安装到C:\OpenSSL中\ 在Windows7上,我以管理员的身份运行cmd。进入jdk的bin文件夹: cd C:\Program Files\Java\jdk1.7.0_45\bin 尝试1: keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | "C:\OpenSSL\bi

我正在尝试使用Facebook实现登录。我对哈希键有问题。 首先,我已将OpenSSL安装到C:\OpenSSL中\

在Windows7上,我以管理员的身份运行cmd。进入jdk的bin文件夹:

 cd C:\Program Files\Java\jdk1.7.0_45\bin
尝试1

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64
输入密码:android

结果:1234567890ab(12个字符)。但是他说:

此命令应生成一个28字符的字符串。复制粘贴 此发布密钥散列到Facebook应用程序ID的Android设置中

试试2

keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64
密码:不询问密码

结果:1234567890abcdefghijklmnopqr(28个字符串)。我已经在Facebook开发者的应用程序页面中输入了这个。已成功登录帐户。我的名字来自Facebook。已注销,尝试再次登录。在移动设备上获取此错误:

无效的密钥哈希。密钥散列0987654321abcdefghijklmnopqr(28 与我生成的字符串不同的字符串)与任何存储的 密钥散列。在上配置应用程序密钥哈希

尝试3次:

keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64
遵循此解决方案:

结果:我得到了一些不可读的东西(abracadabra),但第一个字符类似于Try2的哈希键


我做错了什么?如何解决此问题?

只要在应用程序中执行此代码,您将在LogCat中获得KeyHash

try
{
    PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
    for (Signature signature : info.signatures) 
    {
        MessageDigest md = MessageDigest.getInstance("SHA");
        Log.e("MY KEY HASH:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
    }
} 
catch (NameNotFoundException e)
{

} 
catch (NoSuchAlgorithmException e) 
{

}

1.首先你需要下载openssl,然后使用下面的命令。它肯定会对你有用

 C:\Program Files\Java\jdk1.7.0_71\bin>keytool -exportcert -alias androiddebugkey
     -keystore C:\Users\AJAY SUNDRIYAL\.android\debug.keystore | "C:\Users\AJAY SUND
    RIYAL\Downloads\bin\openssl.exe" sha1 -binary | "C:\Users\AJAY SUNDRIYAL\Downloa
    ds\bin\openssl.exe" base64


Note->
  1.C:\Users\AJAY SUNDRIYAL\.android\debug.keystore  :  this is your debug.keystore path.
  2.C:\Users\AJAY SUNDRIYAL\Downloa
        ds\bin\openssl.exe   : This is path of openssl.exe that you have downloaded from net.

此代码用于检查hashKey不用于生成。请点击此链接。@Kirtan,谢谢您的即时回答,它正在提供哈希键。我进去了。不幸的是,我得到了一个错误:无效的密钥散列。密钥哈希0987654321abcdefghijklmnopqr(与生成的I不同的28个字符串)与任何存储的密钥哈希不匹配。配置你的应用程序密钥哈希在我面临着同样的问题如何解决是一个,并获得正确的哈希为facebook