W przypadku deweloperów aplikacji na Androida, którzy zarządzają własnymi kluczami podpisywania, odcisk cyfrowy certyfikatu SHA-256 jest unikalną tożsamością kryptograficzną aplikacji. Z tego przewodnika dowiesz się, jak uzyskać ten klucz z podpisanego pliku APK lub z oryginalnego magazynu kluczy.
Pobieranie identyfikatora SHA-256 z pliku APK
Te metody są przydatne, jeśli masz ostateczny, podpisany plik APK, ale nie masz łatwego dostępu do oryginalnego magazynu kluczy ani jego haseł.
Metoda 1A. Używanie narzędzia apksigner (zalecane w przypadku plików APK)
Narzędzie apksigner to najnowocześniejszy i najbardziej niezawodny sposób wyodrębniania informacji o podpisie z pliku APK, niezależnie od tego, czy używa on schematów podpisu V1, V2, V3 czy V4.
Krok 1. Znajdź narzędzie apksigner
(Przykład: /Users/username/Library/Android/sdk/build-tools/34.0.0/apksigner)
Krok 2. Uruchom polecenie
Otwórz terminal lub wiersz poleceń, przejdź do katalogu, w którym zapisano plik APK, i wykonaj to polecenie:
apksigner verify --print-certs <ścieżka/do/aplikacji.apk>
Krok 3. Znajdź odcisk cyfrowy SHA-256
Wynik będzie zawierać szczegóły certyfikatu każdego sygnatariusza. Znajdź etykietę skrótu SHA-256:
Signer #1 certificate SHA-256 digest:
a32a43cd459f7ce6b82c552f5d876989d53e6af1c0b2d35fb677b51a1dc4f0e5
Długi ciąg znaków szesnastkowych oddzielonych dwukropkami to odcisk cyfrowy certyfikatu SHA-256.
Metoda 1B. Używanie narzędzia keytool w przypadku pliku APK
Krok 1. Znajdź narzędzie keytool i plik APK
Sprawdź, czy znasz lokalizację narzędzia keytool (część instalacji JDK) i podpisanego pliku APK.
Krok 2. Uruchom polecenie
Użyj tego polecenia, podając podpisany plik APK jako magazyn kluczy:
keytool -printcert -jarfile <ścieżka/do/aplikacji.apk>
Krok 3. Znajdź odcisk cyfrowy SHA-256
Dane wyjściowe będą zawierać sekcję Odciski cyfrowe certyfikatów. Znajdź wiersz SHA-256.
Pobieranie SHA-256 z pliku magazynu kluczy
Jest to domyślna metoda wyodrębniania odcisku cyfrowego certyfikatu z pliku źródłowego magazynu kluczy w dowolnym systemie operacyjnym.
This is the de-facto method for extracting the certificate fingerprint from your source keystore file on any operating system.
Metoda 2. Używanie standardowego narzędzia keytool
Krok 1. Znajdź narzędzia i plik magazynu kluczy
Co musisz mieć?
- Plik magazynu kluczy: plik używany do podpisywania aplikacji (.jks lub .keystore). Musisz znać ścieżkę, hasło i nazwę aliasu klucza w tym pliku.
- Narzędzie keytool: jest ono dołączone do pakietu Java Development Kit (JDK).
| System operacyjny | Lokalizacja narzędzia Keytool |
| Windows | Zwykle znajduje się w katalogu bin instalacji JDK (np. C:\Program Files\Java\jdk-xx\bin\). |
| macOS/Linux | Ogólnie dostępne bezpośrednio w terminalu po zainstalowaniu pakietu JDK. |
Krok 2. Przejdź do właściwej lokalizacji
Otwórz terminal lub wiersz poleceń. Aby uprościć następny krok, możesz przejść do katalogu zawierającego plik magazynu kluczy:
# Przykład: zastąp rzeczywistą ścieżką
cd /path/to/your/keystore/directory
Krok 3. Uruchom polecenie
Aby polecić narzędziu keytool wyświetlenie szczegółów certyfikatu w trybie szczegółowym, użyj tego polecenia:
Uwaga: jeśli narzędzie keytool nie jest rozpoznane, musisz podać pełną ścieżkę do niego (np. „/path/to/jdk/bin/keytool”).
keytool -list -v -keystore [your_keystore_name.jks] -alias [your_key_alias]
- Zastąp [your_keystore_name.jks] rzeczywistą nazwą pliku.
- Zastąp [your_key_alias] konkretną nazwą aliasu klucza podpisywania (np. mykey).
Krok 4. Znajdź odcisk cyfrowy SHA-256
Narzędzie poprosi Cię o podanie hasła do magazynu kluczy. Po wpisaniu danych w wyniku wyświetlą się szczegóły certyfikatu.
Odszukaj sekcję Odciski cyfrowe certyfikatów:
Odciski cyfrowe certyfikatów:
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
Nazwa algorytmu podpisu: SHA256withRSA
...
Długi ciąg znaków szesnastkowych oddzielonych dwukropkami obok SHA256: to odcisk cyfrowy certyfikatu SHA-256.