SHA 和 SHA1 证书如何像 Facebook 一样在您的 Android 应用程序上保护 API?

How SHA and SHA1 certificates secure an API on your Android app like Facebook does?

我知道什么是 SHA 和 SHA1 密码算法。我也知道如何从电脑生成这些。

但我在互联网上搜索了很多,但仍然无法正确解释如何使用这些密钥来保护您在 Android 应用程序上使用的 API?

例如,Facebook 需要您系统中的 SHA1 密钥以及您的应用程序包名称才能在他们的开发者控制台上输入,如果您输入的密钥错误,他们的 API 将无法在您的应用程序上运行.

这个机制是如何运作的?他们如何在您的应用程序上验证这一点?

Facebook 正在利用 Android application signing functionality 在 API 交互环境中提供相同类型的保证。

构建您的应用程序时,您的私钥用于对结果进行数字签名。签名验证构建是由密钥所有者创建的,并且随后没有被修改。

在应用程序中,存储了一个签名证书,可以通过编程方式访问。

在 Facebook SDK 中,the signing certificate is extracted using the PackageManager class. The resultant keyhash is provided as a parameter to API calls, where it is compared with the hash you provided via their Developer ste

因此,通过提供带外密钥哈希(即导出它并进入开发者网站),Facebook 能够验证带内实例(即编译到应用程序中并包含在 API 请求)。