android - Android SDK :How facebook check the Hash key?

标签 android facebook security facebook-android-sdk

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

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

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

最佳答案

时隔一年多了,我想我最好回答一下我的问题。

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;
}

关于android - Android SDK :How facebook check the Hash key?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15944842/

相关文章:

android - 在 ListView 内的 ListView 中重用(或在适配器内的适配器)

使用 google 帐户的 Android SyncAdapter

php - Facebook:如何在页面之间传递信息

php - PHP 中的 AES-256 加密

android - 将 ImageView ImageResource() 设置为等于数据库中列的值

android - 未找到 Kotlin Multiplatrom Mobile 库的匹配变体

ruby - 在 Ruby/Sinatra 中解码 Facebook 的签名请求

facebook - 用于 facebook、linkedin 和 twitter 的 OpenGraph 元数据

Java Sandbox API - 拒绝访问已使用的类

php - 是否有明确的 PHP 反 XSS 库?