当我们想使用 Facebook SDK for Android 作为我们的 SSO 解决方案时,我们需要将我们的 Android 应用程序签名放入我们的 Facebook 应用程序设置(Facebook sdk for android的第 5 步)。
并且该签名应该通过运行 Android SDK 附带的 keytool 来生成。
我很好奇facebook如何验证这个签名?
当我们想使用 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;
}