什么是SHA1指纹?

18

我正在从谷歌获得Google Play API密钥,它要求输入SHA1指纹。我想知道什么是SHA1指纹?我还想知道这个API密钥是否可以在另一台计算机上使用?

6个回答

6
这是实现“安全哈希算法”的标准——一种单向加密函数,可用作字节序列的“签名”。极不可能两个不同的字节序列产生相同的值(虽然不是完全不可能)。

http://en.wikipedia.org/wiki/SHA-1

请注意,现在有其他更健壮的标准,例如SHA256及以上。

先生,为什么其他人编译我的代码时我的密钥不起作用? - Muneem Habib
1
请包含您的代码,我们可以看一下。我已经证明了在多种技术中实现加密功能是可能的,包括c#,java和javascript,它们都会收敛到相同的结果。(诚然,这不是SHA1,但原则仍然相同)。您看到的差异可能是由于某些错误、缺失引用、不同的配置或其他异常造成的,但请发布代码! - ne1410s

5

他们要求你提供keystore文件的SHA1指纹(在将应用程序推送到Google Play之前,您需要使用此文件对其进行签名)

您可以通过以下方式获取您的密钥

keytool -exportcert -alias your-key-name -keystore /path/to/your/keystore/file -list -v

您可以使用来自另一台计算机的密钥库文件,只需将其放在USB存储器上或通过电子邮件发送给自己(确保保持私密!重要!),然后将IDE指向该文件。


要使用此命令,请删除“-exportcert”参数。 “-list”是您要查找的内容,它们是互斥的。我建议进行编辑,但SO说“编辑队列已满”,所以我猜已经有人这样做了。 - kub1x

4

SHA - 代表安全哈希算法。

SHA-1 是几种加密哈希函数之一。SHA-1 最常用于验证文件是否未被篡改。这是通过在文件传输之前生成哈希值(哈希值是通过运行一个称为加密哈希函数的算法产生的),然后再次生成哈希值以确保文件到达目的地时完整无损。

只有两个校验和相同,传输的文件才能被视为真实的。

使用 SHA1 哈希的文件可能如下所示:

752c14ea195c369bac3c3b7896975ee9fd15eeb7

有关详细说明,请参阅: https://www.lifewire.com/what-is-sha-1-2626011


3

如果您正在使用Eclipse IDE,则获取应用程序的SHA1指纹最简单的方法是:

  • 在项目资源管理器中(在左侧),单击您的应用程序项目
  • 从顶部菜单中,单击窗口 -> 首选项
  • 在首选项窗口中,向左展开Android并单击Build

您应该看到以下信息:

  • 默认调试密钥库路径
  • MD5指纹
  • SHA1指纹

您还可以添加其他密钥库文件(例如,生产密钥库),该密钥库的值也将显示出来。


先生,为什么其他人编译我的代码时我的密钥不起作用? - Muneem Habib
如果你希望其他人在签署 APK 时使用相同的密钥库,请尝试阅读这里:https://dev59.com/l2gu5IYBdhLWcg3wRlFh。 - nightfixed
但我只需要密钥来进行调试/构建过程。 - Muneem Habib
在您的原始问题中提到了“Google Play API密钥”。 对于其他生产密钥库,请参见https://dev59.com/nnjZa4cB1Zd3GeqPhLRb - nightfixed

1
最简单获取 SHA1 证书指纹的方法是在 Android Studio 界面右上角 Gradle 按钮处点击。然后点击应用程序名称(例如 android123(root):应该会出现这样的名称)。然后,您将找到一个名为 android 的子文件夹,并点击 signingReport。它应该在控制台中运行并显示 SHA1 证书指纹。希望对您有所帮助。

0

从Windows命令提示符中,导航到项目的根目录。 gradlew文件将在那里。

在提示符处键入以下内容(并按Enter键):gradlew signingReport

在报告中查找类似于以下内容的内容:SHA1:A7:89:E5:05:C8:17:A1:22:EA:90:6E:A6:EA:A3:D4:8B:3A:30:AB:18


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接