适用于Android的SDK:facebook如何检查哈希密钥?

时间:2013-04-11 09:10:40

标签: android facebook security facebook-android-sdk

当我们想要使用Facebook SDK for Android作为我们的SSO解决方案时,我们需要将我们的Android应用程序签名放入我们的Facebook应用程序设置中(Facebook sdk for android的第5步)。

应该通过运行Android SDK附带的keytool生成该签名。

我很好奇facebook如何验证这个签名?

2 个答案:

答案 0 :(得分:2)

一年多之后,我想我最好回答我的问题。

Android的应用程序可以通过以下方式获取其他应用程序的签名:

public String WriteSignature(String packageName)
{     
   PackageManager pm = this.getPackageManager();
   String sig = ""; 
   PackageInfo pi = null;
   try {
       pi = pm.getPackageInfo(packageName, PackageManager.GET_SIGNATURES);
   } catch (NameNotFoundException e1) {
       e1.printStackTrace();
   }

   try {
       for (Signature signature : pi.signatures) {
           MessageDigest md = MessageDigest.getInstance("SHA");
           md.update(signature.toByteArray());
           sig = Base64.encodeToString(md.digest(), Base64.DEFAULT);
           Log.d(ACTIVITY_TAG, sig);
       }
   } catch (NoSuchAlgorithmException e) {
       e.printStackTrace();
   }

   return sig;
}

答案 1 :(得分:1)

  • 要使Facebook应用程序正常运行,我们需要提供Facebook“App Id”
  • 对于Android平台,我们需要提供包名,类名& “HashKey
  • App主要有2个HashKey用于“Debug”& “发布”版本的应用
  • 当app访问facebook时,SDK会在内部生成&将HashKey与在facebook app中提交的HashKey进行比较