我知道什么是SHA和SHA1加密算法。我也知道如何从计算机上对它们进行修饰。
但是我在互联网上进行了很多搜索,但是仍然无法获得有关如何使用这些密钥来保护您在Android应用中使用的API的正确解释?
例如,Facebook需要在系统的开发者控制台上输入系统中的SHA1密钥以及应用程序的软件包名称,并且如果输入的密钥错误,则API不适用于您的应用程序。
该机制如何工作?他们如何在您的应用程序上对此进行验证?
答案 0 :(得分:2)
Facebook正在利用Android application signing functionality在API交互的情况下提供相同类型的保证。
在构建应用程序时,您的私钥用于对结果进行数字签名。签名确认该构建是由密钥所有者创建的,随后未进行修改。
在应用程序中,存储了签名证书,该签名证书可以通过编程方式访问。
在Facebook SDK中,使用the signing certificate is extracted PackageManager class。生成的密钥哈希为provided as a parameter to API calls,将其与the hash you provided via their Developer ste进行比较。
因此,通过提供带外密钥散列(即将其导出并进入开发者网站),Facebook能够验证带内实例(即,编译到应用程序中并包含在API请求中)。 / p>