1

我正在使用适用于 android 的 facebook sdk,并且我已经发现了几乎所有关于它的文档,但让我感到困惑的是 keyHash,我听说它是​​为安全而设计的,在这个幻灯片教程中,Vivek 先生说它应该是秘密的,但他没有删除生成它的代码,任何可以拥有相同代码的人都可以生成相同的哈希,因为它不是加盐哈希。我对此有点困惑,所以请告诉我我错过了什么。提前致谢。

4

1 回答 1

0

tl; dr:密钥哈希不需要是秘密。它本质上是一个允许 Facebook 验证您的应用的签名。

长版:

创建 apk 时,您使用密钥库中的密钥对其进行签名(调试用于开发构建,发布用于生产构建)。

密钥哈希是您的密钥的 sha1 哈希,当您将其放入应用设置时,Facebook 会将这个值与您的应用相关联。

当您的应用程序使用 Facebook 应用程序中的任何 SDK 功能(SSO、共享对话框等)时,Facebook 应用程序能够从您的应用程序中提取签名,生成密钥哈希,并将其发送到服务器。服务器将验证发送的值是否与您的应用相关联。这样,如果有人试图欺骗您的应用程序,它将在服务器端失败,因为密钥哈希将不同(只要他们无权访问您的签名密钥)。

于 2015-04-01T22:47:00.993 回答