簡體   English   中英

使用 keytool 獲取證書的 MD5 簽名

[英]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 中):

MinGW 截圖

您是否嘗試過使用 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM