当前位置: 首页 > 知识库问答 >
问题:

Android哈希密钥

阎鹏
2023-03-14

我已经完成了一个android应用程序的开发,该应用程序使用facebook sdk与facebook集成。目前,我对这个应用程序没有任何问题需要解决,因为它功能齐全,运行良好——但尽管如此,我相信即使应用程序正在运行,我仍然不完全理解Android密钥散列是什么

1)据我所知,facebook sdk为开发者提供了一个独特的应用程序id,以了解他们与谁“交谈”,这样他们也可以控制谁是谁之类的人,但他们从你的android密钥哈希中获得了什么好处?

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

3) 散列密钥对于模型或平台/Android版本是唯一且恒定的,还是我可以从我的应用程序生成一个密钥散列,这样我就可以添加它,并使从不同手机运行的所有相同应用程序使用同一个?

4) 总的来说,我不明白密钥散列是什么,是谁生成的,最重要的是为什么,密钥散列的用途是什么,它对facebook有什么好处?

我试着搜索它,但在这里,我发现了一些问题,关于知道模拟器密钥哈希的步骤,或者关于如何在谷歌上处理脸谱网/开发者的方向。我肯定有涵盖这个的留档,找不到。

谢谢

共有2个答案

刘凡
2023-03-14

有一个单一的密钥,你可以注册你的应用程序,你将不得不与你的Facebook开发者档案相关联,见此。为了在部署之前在各种设备上测试应用程序,应该使用android debug键,如android文档中所述

吕志诚
2023-03-14

1) 据我所知,facebook sdk为开发者提供了一个独特的应用程序id,让开发者知道他们与谁“交谈”,这样他们也可以控制谁是谁之类的人,但他们从你的Android密钥散列中获得了什么好处?

正如您在文档中看到的那样,这是为了增加一层安全性来验证应用程序的身份。

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

密钥散列是基于您用来构建APK的计算机,它不依赖于它在什么手机上运行。所以,如果你只在一台开发机器上开发你的应用程序,那么你只需要为你的应用程序担心一个密钥散列。目前,当您仍在开发应用程序时,您使用的是android调试密钥,当您想发布到Google Play时,Google要求您使用自己的密钥而不是android调试密钥对APK进行签名。当你创建自己的密钥来签署APK时,你还需要在Facebook的应用程序设置中复制并粘贴自己密钥的密钥散列。

3) 散列密钥对于模型或平台/Android版本是唯一且恒定的,还是我可以从我的应用程序生成一个密钥散列,这样我就可以添加它,并使从不同手机运行的所有相同应用程序使用同一个?

正如我上面所说,密钥散列与它在哪个平台/设备上运行无关,密钥散列与构建APK的机器有关。因此,出于测试目的,您可以找到android调试密钥的密钥散列,并将其粘贴到应用程序设置中,所有运行该APK构建的手机都可以工作。简而言之,就是散列键=

4)总的来说——我不明白密钥哈希是什么,谁生成的,最重要的是为什么——密钥哈希有什么用,它对脸谱网有什么好处?我试着搜索过它,但在这里我发现了一些问题,关于知道模拟器密钥哈希是什么的步骤,或者如何在谷歌上处理脸谱网/开发者的方向。我肯定有包含这个的留档,找不到。谢谢!

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

 类似资料:
  • 简介 Laravel Hash facade 为存储用户密码提供了安全的 Bcrypt 和 Argon2 哈希。如果您使用 Laravel 应用程序中内置的 LoginController 和 RegisterController 类,则默认情况下它们将使用 Bcrypt 进行注册和身份验证。 {tip} Bcrypt 是哈希密码的理想选择,因为它的「加密系数」可以任意调整,这意味着生成哈希所需的

  • 每个人在建构 PHP 应用时终究都会加入用户登录的模块。用户的帐号及密码会被储存在数据库中,在登录时用来验证用户。 在存储密码前正确的 哈希密码 是非常重要的。密码的哈希操作是单向不可逆的,该哈希值是一段固定长度的字符串且无法逆向推算出原始密码。这就代表你可以哈希另一串密码,来比较两者是否是同一个密码,但又无需知道原始的密码。如果你不将密码哈希,那么当未授权的第三者进入你的数据库时,所有用户的帐号

  • 我按照步骤创建哈希键。 > 下载的openssl 解压缩并复制bin文件夹中的所有文件,包括openssl.exe 然后我在OpenSSL.exe终端窗口上使用了以下命令 keytool-exportcert-alias androiddebugkey-keystore c:\users\joelle.android\debug.keystore openssl sha1-binary opens

  • 问题内容: 我完全不了解这个过程。我已经能够导航到Java SDK中包含keytool的文件夹。尽管我不断收到错误,但openssl无法识别为内部或外部命令。问题是,即使我可以解决这个问题,我该怎么办?之后怎么办? 问题答案: 这是你需要做的 从代码 提取中下载openSSl 。在C:/中创建一个文件夹-OpenSSL,然后在此处复制提取的代码。 检测debug.keystore文件路径。如果找不

  • 问题内容: 给定密钥,有什么办法可以解密加密的MD5字符串? 问题答案: 尝试使用Google(请参阅使用Google破解MD5密码)或包含md5()之类的MD5散列的在线数据库;或GDATA(最后一个包含1,133,766,035个唯一条目)。

  • 我是在阅读了一些关于php中会话管理的主题后开始进行安全讨论的,请查看:https://paragonie.com/blog/2015/04/secure-authentication-php-with-long-termer-persistence#title.2 引自章节:胡椒还是不胡椒? 一个更好的解决方案是,在将散列插入数据库之前对其进行加密,如果使用硬件分离,这种解决方案尤其有用。有了这