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

时间:2011-06-10 11:47:36

标签: android google-maps md5 sha1 fingerprint

由于我想在我的应用程序中使用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证书?

11 个答案:

答案 0 :(得分:187)

安装了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证书。

答案 1 :(得分:25)

要获取MD5值和SHA1 ......等等,请执行以下操作:

在此之前不要忘记将debug.keystore复制到像在C盘中创建的文件夹Androidkeystore。

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 \ Your Name \ .android \ debug.keystore"

答案 2 :(得分:5)

如果您使用的是jdk 7:

使用-v选项。

答案 3 :(得分:5)

添加-v

keytool之后和-list之前

keytool -v -list

答案 4 :(得分:3)

-v标志也提供SHA1认证。如果没有该标志,您只能获得MD5指纹。

答案 5 :(得分:2)

将'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'

答案 6 :(得分: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/

当他们更改为新界面时,您必须转到 API&amp;左侧是auth 标签,然后转到 已注册的应用 ,选择现有的API密钥进行替换或创建新密钥,使用之前生成的SHA1代码。

这就是我如何运作的。

答案 7 :(得分:1)

JDK 1.7 keytool总是返回SHA1指纹。看那里解决问题而不是降级你的JDK:http://code.google.com/p/android/issues/detail?id=19035#makechanges

答案 8 :(得分:1)

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

enter image description here

请查看this question了解更多详情。

答案 9 :(得分:1)

你好,2021 年。

JDK 8 和更新版本的 keytool 不再打印 MD5,即使您尝试将“-v”选项添加到“keygen -list”命令的标准建议也是如此。

我想 MD5 不再被认为足够安全,has been removed

同时还有像亚马逊的“Security Profile Management” for LWA等地方要求你提交证书的MD5签名。

这是一个可以传送它的命令(使用 Android Studio 密钥库的密码“android”):

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | \
openssl dgst -md5 

如果你想在中间有冒号字符,那么添加以下“sed”命令:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | \
openssl dgst -md5 | \
sed 's/[a-fA-F0-9][a-fA-F0-9]/&:/g; s/:$//'

以上命令适用于 Linux、macOS 甚至 Windows(在 git bash 中):

MinGW screenshot

答案 10 :(得分:0)

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