我需要为我的应用程序获取Google地图密钥,为此,我需要我的证书的MD5签名。如在互联网上看到的,我使用“keytool”来获取它:
keytool -list -alias mykey -keystore mykeystore
问题是答案是SHA1签名而不是MD5签名。
我使用的是JDK 1.7。
我做错了什么?
提前感谢你花时间去帮助我。
答案 0 :(得分:3)
还有另一篇关于同一事件的帖子How can I get the MD5 fingerprint from Java's keytool, not only SHA-1?
我猜JDK 1.7默认为SHA1。要解决此问题,以下方法有效:
C:\Program Files\Java\jdk1.7.0\bin>keytool -v -list -alias
androiddebugkey -keystore debug.keystore -storepass android -keypass android
我试过这个,它对我有用。它为您提供MD%,SHA1,SHA256和签名算法名称。按此顺序。
答案 1 :(得分:1)
keytool -exportcert -alias alias -keypass keypass -keystore ./test.keystore -storepass 123456 | md5sum
答案 2 :(得分: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 中):
答案 3 :(得分:0)
您是否尝试过keytool命令:
$ keytool -list -keystore ~/.android/debug.keystore
有关获取Map API密钥的更多信息,请访问:http://code.google.com/android/maps-api-signup.html
当你使用JDK 1.7时,它的keytool有一个新的命令行参数,即-keyalg。
我知道你可以指定-keyalg RSA,所以也许-keyalg MD5会给你正确的密钥。
答案 4 :(得分:0)
回到java 1.6解决。