107

由于我想在我的应用程序中使用谷歌地图,我需要调试证书的 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证书?

4

11 回答 11

190

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

于 2011-08-21T19:42:59.037 回答
26

要获得 MD5 值和 SHA1...等,请遵循以下步骤:

在此之前不要忘记将 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"

于 2012-06-20T14:33:50.047 回答
7

如果您使用的是 jdk 7:

使用 -v 选项。

于 2012-05-14T16:35:15.757 回答
5

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

于 2019-04-12T15:59:55.520 回答
4

添加 -v

之后keytool和之前-list

keytool -v -list
于 2012-10-07T01:21:55.040 回答
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

密码是“安卓”

于 2011-08-11T00:33:44.920 回答
3

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

于 2012-10-09T17:53:58.913 回答
3

2021 年你好。

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

我猜 MD5 不再被认为足够安全并且已被删除

同时还有一些地方比如亚马逊的“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 截图

于 2021-04-27T16:15:52.707 回答
2

我通过打开命令提示符(管理员)解决了 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 代码。

这就是我让它工作的方式。

于 2013-11-22T14:27:57.657 回答
1

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

在此处输入图像描述

查看这个问题了解更多详情。

于 2013-12-16T10:46:15.770 回答
1

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

于 2011-10-03T16:54:35.660 回答