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

Pra*_*gar 104 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
Run Code Online (Sandbox Code Playgroud)

但得到了以下结果:

androiddebugkey, May 27, 2011, PrivateKeyEntry,Certificate fingerprint (SHA1): "some code"
Run Code Online (Sandbox Code Playgroud)

但是,这无法获得MAP API密钥.SHA1与MD5相同吗?

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

Ank*_*ena 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
Run Code Online (Sandbox Code Playgroud)

它也会输出MD5证书.

  • 谢谢,-v选项为我做了 (7认同)
  • 这个答案已过时,对于 JDK 8 及更高版本,“-v”选项[不再打印 MD5](https://bugs.openjdk.java.net/browse/JDK-8249541)。 (5认同)

Cri*_*nan 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
Run Code Online (Sandbox Code Playgroud)

它在这里问..输入密钥库密码:android

输入你的MD5和SHA1 ..等

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
Run Code Online (Sandbox Code Playgroud)

注意:如果目录路径中有任何空格,则必须将其括在引号中.例如使用以下格式:

-keystore"C:\ Users\Your Name\.android\debug.keystore"

  • @AnkitSaxena这个答案更好,帮助了我,所以请不要阻止任何人提供不同信息的替代答案.谢谢K.krishnan的回答+1 (3认同)

Ale*_*ber 17

2021 年你好。

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

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

同时仍然有像Amazon“Security Profile Management” for LWA等地方要求您提交证书的MD5签名。

下面是一个将传递它的命令(使用 Android Studio 密钥库的密码“android”):

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | \
openssl dgst -md5 
Run Code Online (Sandbox Code Playgroud)

如果您想在中间添加冒号字符,请添加以下“sed”命令:

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

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

git bash 截图


小智 6

如果您使用的是jdk 7:

使用-v选项.


小智 5

-v

就在keytool之前和之后-list

keytool -v -list
Run Code Online (Sandbox Code Playgroud)


小智 5

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

  • 这可以简化为运行“./gradlesigningReport”。 (3认同)

小智 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

密码是“安卓”