如何从公共私钥对中检索facebook的签名哈希?

时间:2011-03-15 15:28:50

标签: android signing

我正在为我的一个项目使用signapk版本。我用公共私钥对(.pk8& .pem)签署我的apk。

我的应用程序使用facebook单点登录机制,我需要在Facebook注册的签名证书的哈希值,以确保正确的应用程序启动单点登录过程。 Facebook提供了以下用于生成此哈希的示例代码:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore 
| openssl sha1 -binary
| openssl base64

我对如何从我用于签名的公钥,私钥对生成适当的哈希感到困惑。

3 个答案:

答案 0 :(得分:4)

此方法适用于您使用PK8 + PEM密钥对签名的APK。或者使用任何其他(正确)签名的APK

  1. 证书可以从* .apk文件中获知

    1. 解压缩apk文件并提取META-INF \ CERT.RSA文件
    2. 执行:

          keytool -printcert -file CERT.RSA
      

      检查sha1字节

  2. sha1指纹签名的字节需要写入sha1.bin(你可以使用十六进制编辑器)

  3. 执行:

    openssl base64 -in sha1.bin -out base64.txt
    
  4. 所以,base64.txt包含APK的FB KeyHash

答案 1 :(得分:0)

Facebook哈希实际上是SHA1的base64编码。

因此,您必须从以.pem扩展名结尾的证书文件中生成sha1!。

从.pem文件获取SHA1的命令:- openssl x509 -fingerprint -in certificate.pem -noout

此命令将返回.pem文件的SHA1,将certicicate.pem替换为.pem文件的名称!...

成功获取SHA1之后,现在您的任务是将SHA1编码为base64,并且有很多方法可以做到这一点,我建议您访问以下网站:

http://tomeko.net/online_tools/hex_to_base64.php?lang=en

转到此站点,输入您的SHA1,在最后一个文本框中,您将收到编码的base64,它是您的Facebook开发人员应用程序的哈希值!。

答案 2 :(得分:-1)

下载Open SSl并安装到您的电脑上。查看此问题我已经问过Question的一些答案..