Facebook keyHash 生成

最近收到 Facebook 官方反馈,说是 google play 下载的 apk facebook 登录失败,一脸懵逼!测试本地的一切正常,后面怀疑多签名的缘故,亲自下载了 google play 商店发布的 apk,登录果然失败。

google play 商店发布的 apk 当初使用的是官方建议的签名【万恶之源】,然后就弄出了多套签名的故事,并且手里面只有一个 public 证书。

Facebook keyHash 生成按照官方 demo:
keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -binary | openssl base64
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

如果只有一个签名,并且自己有 jks 之类的就很简单了,只需要敲以上命令就可以拿到结果值
因为 google play 商店只提供 public 证书,并且提供签名的 MD5、SHA1、SHA256
于是只能通过 SHA1 直接生成:
echo 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 | xxd -r -p | openssl base64

可以通过以上两种方法输出结果相互印证,最后当然要实际环境测试一下。
最终通过直接下载 google play 商店 apk 能够通过 facebook 授权。

https://stackoverflow.com/questions/54274593/how-to-compute-key-hash-for-facebook-from-deployment-cert-der-file