如果 Android 開發人員需要管理簽署金鑰,可以將 SHA-256 憑證指紋當成應用程式專屬的加密編譯身分。憑證指紋可從已簽署的 APK 檔案或原始 KeyStore 取得,本指南將說明三種方式。
從 APK 檔案取得 SHA-256
如有已簽署的最終版本 APK 檔案,但無法輕鬆存取原始 KeyStore 或其密碼,就很適合採用下列方式。
方法 1A:使用 apksigner (建議 APK 使用)
無論是使用 V1、V2、V3 還是 V4 簽署配置,apksigner 都是從 APK 取得簽章資訊時,最先進也最可靠的工具。
步驟 1:找出 apksigner
(例如:/Users/username/Library/Android/sdk/build-tools/34.0.0/apksigner)
步驟 2:執行指令
開啟終端機或命令提示字元,前往 APK 所在的目錄,然後執行以下指令:
apksigner verify --print-certs <path/to/your/app.apk>
步驟 3:找出 SHA-256 指紋
執行結果會列出每位簽署者的憑證詳情。請找出 SHA-256 摘要標籤:
Signer #1 certificate SHA-256 digest:
a32a43cd459f7ce6b82c552f5d876989d53e6af1c0b2d35fb677b51a1dc4f0e5
一長串以半形冒號隔開的十六進制字元字串,便是 SHA-256 憑證指紋。
方法 1B:在 APK 使用 Keytool
步驟 1:找出 Keytool 和 APK
確定您知道 Keytool 公用程式 (隨 JDK 安裝) 和已簽署 APK 檔案的位置。
步驟 2:執行指令
執行下列指令,將已簽署 APK 檔案指定為 KeyStore:
keytool -printcert -jarfile <path/to/your/app.apk>
步驟 3:找出 SHA-256 指紋
執行結果會有「憑證指紋」部分,請找出 SHA-256 所在的那一行。
從 KeyStore 檔案取得 SHA-256
這是從來源 KeyStore 檔案取得憑證指紋的標準做法,任何作業系統皆適用。
這是從來源 KeyStore 檔案取得憑證指紋的標準做法,任何作業系統皆適用。
方法 2:使用標準 Keytool 公用程式
步驟 1:找出工具和 KeyStore 檔案
必要項目:
- KeyStore 檔案:用來簽署應用程式的檔案 (.jks 或 .keystore)。您必須知道這些檔案的路徑、密碼,以及當中金鑰的別名。
- Keytool 公用程式:此工具隨附於 Java Development Kit (JDK)。
| 作業系統 | Keytool 位置 |
| Windows | 通常位於安裝 JDK 的 bin 目錄 (例如:C:\Program Files\Java\jdk-xx\bin\)。 |
| macOS/Linux | 安裝 JDK 後,一般可直接在終端機上使用。 |
步驟 2:前往正確位置
開啟終端機或命令提示字元。想要輕鬆完成下一步,您可以前往含有 KeyStore 檔案的目錄:
# 範例:換成實際路徑
cd /path/to/your/keystore/directory
步驟 3:執行指令
執行下列指令,指示 Keytool 以詳細輸出模式列出憑證詳情。
注意:如果系統無法辨識 Keytool,請指定公用程式的完整路徑 (例如:「/path/to/jdk/bin/keytool」)。
keytool -list -v -keystore [your_keystore_name.jks] -alias [your_key_alias]
- [your_keystore_name.jks] 換成檔案的實際名稱。
- [your_key_alias] 換成簽署金鑰的實際別名 (例如 mykey)。
步驟 4:找出 SHA-256 指紋
公用程式會提示您輸入 KeyStore 密碼。完成後,執行結果就會顯示憑證詳情。
請找出「Certificate fingerprints」部分:
Certificate fingerprints:
SHA1: XX:XX:XX:XX:XX:...
SHA256: 0A:B3:C6:D9:E2:F5:81:B4:C7:D0:E3:F6:92:A5:B8:C1:D4:E7:F0:83:96:A9:BC:D1:E4:F7:03:96:A9:BC:D1:E4
Signature algorithm name: SHA256withRSA
...
「SHA256:」旁會顯示一長串以半形冒號隔開的十六進制字元字串,亦即 SHA-256 公開憑證指紋。