[英]Using keytool to get the MD5 signature of a certificate
我需要为我的应用程序获取一个 Google 地图密钥,为此,我需要我的证书的 MD5 签名。 正如在互联网上看到的,我使用“keytool”来获取它:
keytool -list -alias mykey -keystore mykeystore
问题是答案是 SHA1 签名而不是 MD5 签名。
我使用 JDK 1.7。
我究竟做错了什么?
预先感谢您花时间帮助我。
还有另一篇关于同一件事的帖子如何从 Java 的密钥工具中获取 MD5 指纹,而不仅仅是 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 和签名算法名称。 以该顺序。
keytool -exportcert -alias alias -keypass keypass -keystore ./test.keystore -storepass 123456 | md5sum
你好,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 中):
您是否尝试过使用 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 会给你正确的密钥。
通过回到 java 1.6 解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.