Facebook获取Key Hashes

来源:互联网 发布:windows字体有哪些 编辑:程序博客网 时间:2024/04/29 13:24
Key Hashes最主要就是让Facebook分辨你的App是不是当初设定的那个App,要符合才能对Facebook API进行存取。
获取Key Hashes方法如下:

1.首先下载OpenSSL


2.将openssl.exe放到C:\Program Files\Java\jre7\bin这个文件下


3.打开cmd.exe,进入到C:\Program Files\Java\jre7\bin,制作keystore文件,如下
keytool -genkey -v -keystore xxx.keystore -alias yyy -keyalg RSA -keysize 2048 -validity 10000

这样就能得到keystore(eclipse也可以制作keystore文件)截图如下:


这里的xxx.keystore和yyy都是自己定义的名称,下面获取HashKey的时候要用到
参数说明:
-keystore:名称
-alias:別名
-keyalg:演算法

-validity:有效天数


4.得到keystore后,就可以获取Key Hashes了,如下

keytool -exportcert -alias yyy -keystore xxx.keystore | openssl sha1 -binary | openssl base64

这里的-alias和-keystore的名称就是刚刚取的名称,然后输入密钥库口令就可以得到Key Hashes了,下面是操作截图:



5.也可以通过代码来获取​:

try {
       PackageInfo info = getPackageManager().getPackageInfo( getPackageName(),  PackageManager.GET_SIGNATURES);
       for (Signature signature : info.signatures) {
           MessageDigest md = MessageDigest.getInstance("SHA");
           md.update(signature.toByteArray());
           String KeyHash = Base64.encodeToString(md.digest(), Base64.DEFAULT);
           Log.d("KeyHash:", "KeyHash:"+KeyHash);//两次获取的不一样  此处取第一个的值
           Toast.makeText(this, "FaceBook HashKey:"+KeyHash, Toast.LENGTH_SHORT).show();
       }
   } catch (NameNotFoundException e) {
   } catch (NoSuchAlgorithmException e) {
   }
0 0