如何从Java的keytool中获得MD5指纹,而不仅仅是SHA-1?


105

当我想在应用程序中使用Google地图时,我需要调试证书的MD5指纹。我尝试了以下方法:

(在这里我从bin文件夹中的C:\ Documents and Settings \ Administrator.android复制了debug.keystore文件)

C:\Program Files\Java\jdk1.7.0\bin>keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android

但是得到了以下结果:

androiddebugkey, May 27, 2011, PrivateKeyEntry,Certificate fingerprint (SHA1): "some code"

但是,这不适用于获取MAP API密钥。SHA1是否与MD5相同?

我应该怎么做才能获得MD5证书?

Answers:


189

安装JDK 1.7后,keytool在默认情况下始终输出SHA1指纹,而不输出MD5。您可以通过添加-v选项获得MD5证书。

使用以下代码:-

C:\Program Files\Java\jdk1.7.0\bin>keytool -v -list -alias
androiddebugkey -keystore debug.keystore -storepass android -keypass android

它也会输出MD5证书。


7
谢谢-v选项为我完成了任务
Joseph Earl

现在,MD5和sha1流程已更改为Google。在这里获得MD5之后,我们需要从Google API控制台获取API密钥。谢谢你们
Crishnan Iyengar

@ Ankit-Saxena-您能回答这个stackoverflow.com/questions/55336382/…-v 选项对我不起作用。
v1h5

25

要获得MD5值和SHA1 ... etc,请注意以下几点:

在此之前,请不要忘记将debug.keystore复制到文件夹Androidkeystore中,就像在C驱动器中创建的一样。

C:\Program Files\Java\jdk1.7.0_05\bin>keytool -v -list -keystore C:\Androidkeyst
ore\debug.keystore

它询问这里。输入密钥库密码:android

输入你在这里MD5&SHA1..etc

Keystore type: JKS
Keystore provider: SUN

Your keystore contains ? entry

Alias name: androiddebugkey
Creation date: ?? ???, ????
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[?]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 67b6344b
Valid from: Mon Jun 18 20:33:56 IST 2012 until: Wed Jun 11 20:33:56 IST 2042
Certificate fingerprints:
         MD5:  C2:61:51:3E:BC:C8:0C:DB:75:B6:E7:C4:90:AD:91:39
         SHA1: CD:5E:8A:0F:4E:0F:2E:FD:92:5E:5E:4R:CF:F8:44:33:2C:8C:B8:97
         SHA256: B5:BF:75:60:DB:62:09:49:F1:38:CH:49:18:22:18:95:03:C9:5C:14:F6:
B0:F4:21:D2:19:B8:FF:38:D2:B9:FD
         Signature algorithm name: SHA256withRSA

注意:如果目录路径中有空格,则必须将其用引号引起来。例如,使用以下格式:

-keystore“ C:\ Users \您的名字\ .android \ debug.keystore”


3
@AnkitSaxena这个答案更好,并且对我有所帮助,因此请不要阻止任何人提供其他信息的替代答案。感谢K.krishnan的答案+1
Onimusha

6

如果您使用的是jdk 7:

使用-v选项。


1
请注意询问该问题的日期。除非您认为自己有更好的答案,否则不要回答旧问题。
2012年

我这样做是因为它解决了我的问题。我现在才遇到问题。如果有人现在遇到相同的问题,我只是想留下一些东西。顺便说一句感谢负2分。:(
fjs

5

-v

就在keytool之后-list

keytool -v -list

3

将'debug.keystore'文件复制到 c:\ 或某个文件夹

你尝试去 c:\Program Files\Java\jdk1.6.25\bin folder 输入

c:\Program Files\Java\jdk1.6.25\bin>keytool -list -keystore c:\debug.keystore

密码是“ android”



3

获得SHA 1,MD 5的最简单方法是单击Android Studio屏幕角落附近右上角的Gradle。然后单击应用程序的名称(例如android123(root):它应显示如下)。之后,您将找到一个名为android子文件夹,然后单击它以进入signingReport。它应在控制台中运行,并向您显示SHA 1,MD5。希望它会有所帮助。


谢谢!所有其他答案都不适用于我,但是这个答案可以。
Yuri Reis

2

我已经通过打开命令提示符(Admin)解决了Windows 8中的问题,然后键入:

C:\Program Files (x86)\Java\jre7\bin>keytool -v -list -keystore C:\<Your Path>\<Your Keystore>

之后,只需转到https://code.google.com/apis/console/

当它们更改为新界面时,您必须转到左侧的APIs&auth选项卡,然后转到Registered Apps,选择您现有的API密钥来替换它,或者使用先前生成的SHA1代码创建一个新的API密钥。

这就是我的工作方式。



1

只需使用eclipse中的密钥库导出项目,最后一步,您将同时获得SHA-1和MD-5。

在此处输入图片说明

查看此问题以获取更多详细信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.