android哈希密钥

时间:2012-09-05 23:30:26

标签: android facebook

我已经完成了开发一个使用facebook sdk与Facebook集成的Android应用程序。我没有任何问题或问题要解决这个应用程序,因为它功能齐全,运行良好 - 但据说我相信即使应用程序运行,我仍然不完全明白什么是android密钥哈希。

1)我理解facebook sdk为开发人员提供了一个独特的应用程序ID,以便知道他们与谁“交谈”,这样他们也可以控制谁是谁等等,但是他们从你的android密钥哈希获得了什么?

2)据我所知,我在开发PC上的模拟器有一个密钥哈希(我得到了),三星Galaxy S1和S2(两者都有相同的密钥哈希)有不同的一个,现在我已经将apk传递给另一个用户,该用户具有不同的密钥哈希(以及不同的手机品牌和Android版本)。那么 - 如果我有一天在Google Play上发布我的应用程序,我是否需要更新所有可能的哈希密钥的Facebook /开发人员?

3)哈希键是唯一且对于模型或平台/安卓版本是否恒定,或者我可以从我的应用程序生成密钥哈希所以我可以添加它并使所有相同的应用程序从不同的手机运行使用同一个?

4)一般来说 - 我不明白关键哈希是什么,谁生成它,最重要的是为什么 - 关键哈希的用途是什么,以及它对Facebook有什么好处?

我试图搜索它,但在这里我发现了一些关于知道模拟器密钥散列的步骤的问题或者关于如何处理谷歌上的Facebook /开发者的指示。我确信有文件涵盖了这个,找不到它。

谢谢!

2 个答案:

答案 0 :(得分:17)

  

1)我理解facebook sdk为开发人员提供了一个独特的应用程序ID,以便知道他们与谁“交谈”,这样他们也可以控制谁是谁等等,但他们从拥有你的android获得了什么密钥哈希?

正如您在documentation中看到的那样,可以通过额外的安全层来验证应用程序的身份。

  

2)据我所知,我在开发PC上的模拟器有一个密钥哈希(我得到了),三星Galaxy S1和S2(两者都有相同的密钥哈希)有不同的一个,现在我已经将apk传递给另一个用户,该用户具有不同的密钥哈希(以及不同的手机品牌和Android版本)。那么 - 如果我有一天在Google Play上发布我的应用程序,我是否需要更新所有可能的哈希密钥的Facebook /开发人员?

密钥哈希基于您用于构建APK的计算机,它不依赖于运行的手机。因此,如果您只从一台开发机器上处理您的应用程序,那么您只需要为您的应用程序担心一个密钥哈希值。目前,当您仍在开发应用时,您正在使用 android debug 键,当您想要发布到Google Play时,Google要求您使用自己的密钥对APK进行签名,并且不是 android调试密钥。当您创建自己的密钥以对APK进行签名时,您还需要在Facebook上的应用设置中复制并粘贴您自己密钥的密钥哈希。

  

3)哈希键是唯一且对于模型或平台/安卓版本是否恒定,或者我可以从我的应用程序生成密钥哈希所以我可以添加它并使所有相同的应用程序从不同的手机运行使用同一个?

如上所述,密钥哈希与运行它的平台/设备无关,密钥哈希与您构建APK的计算机相关联。因此,出于测试目的,您可以找到android调试密钥的密钥哈希并将其粘贴到应用程序设置中,并且运行该APK版本的所有手机都可以使用。简而言之,哈希键=>开发PC,哈希键==>电话

  

4)一般来说 - 我不明白关键哈希是什么,谁生成它,最重要的是为什么 - 关键哈希的用途是什么,以及它对Facebook有什么好处?   我试图搜索它,但是在这里我发现了关于知道什么是模拟器密钥哈希的步骤的问题或者关于如何处理谷歌上的Facebook /开发者的指示。我确信有文件涵盖了这个,找不到它。谢谢!

密钥哈希是用于在编译应用程序时对APK进行签名的密钥哈希。 Eclipse会使用android调试键自动为您执行此操作,但是当您上传到Google Play时,您需要创建自己的密钥。它对你和Facebook都有好处,因为它是一个额外的安全层,可以确保代表你调用API的应用程序实际上是你的应用程序。

答案 1 :(得分:2)

您只需使用一个密钥注册您的应用程序,就必须与您的Facebook开发人员资料see this相关联。为了在部署之前在各种设备上测试应用程序,您应该使用android调试密钥,如Android documentation中所述