Czy jest jakiś sposób, aby uzyskać klucz hash z podpisanego APK?
Czy jest jakiś sposób, aby uzyskać klucz hash z podpisanego APK? Mamy podpisany plik APK Androida i chcemy dowiedzieć się kluczowego hasha tego APK dla Facebook SDK. Możemy to zrobić przez coś takiego jak jarsigner?Jakieś sugestie?
4 answers
Dla użytkowników windows uzyskanie klucza z openssl może być trudne.. Zawsze używam tego, aby znaleźć właściwą podpis.. Po prostu wklej ten kod w OnCreate () i uruchom.
// Add code to print out the key hash
try {
PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.e("MY KEY HASH:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
Update:
Korzystanie z Android studio (2.1.2):
- Otwórz swój projekt w studio i kliknij ikonę gradle.
- Wybierz swoją aplikację -> zadania -> android - > SigningReport
To uruchomi zadanie gradle, które wydrukuje debugowanie i wyda certyfikat z kluczami md5 i sha1
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-22 10:52:46
W Linuksie użyłem tego polecenia, aby pobrać hash klucza z apk:
keytool -list -printcert -jarfile [path_to_your_apk] | grep -Po "(?<=SHA1:) .*" | xxd -r -p | openssl base64
Dla użytkowników komputerów Mac (OS X), ponieważ nie ma obsługi grep-P
keytool -list -printcert -jarfile ~/Downloads/YOURAPKFILE.apk | grep "SHA1: " | cut -d " " -f 3 | xxd -r -p | openssl base64
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-06 08:17:16
Openssa można pobrać z Tutaj
- aby wygenerować podpis musisz zainstalować openssl na swoim komputerze. Jeśli nie mam żadnego OpenSSL do pobrania stąd
- W C: , Utwórz folder openssl
- rozpakuj zawartość pobranego pliku zip OpenSSL do OpenSSL folder w C: drive
- Otwórz wiersz polecenia
- Przenieś do kosza OpenSSL czyli C:\openssl\bin w wierszu polecenia
-
Uruchom następujące polecenie, aby wygenerować keyhash. While generowanie hashkey powinien zapytać o hasło.
keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Anhsirk.android\debug.keystore" | openssl sha1 -binary | openssl base64
Uwaga: w powyższym kodzie należy podać ścieżkę użytkownika (tzn. w moim przypadku jest to C:\Users\Anhsirk musisz tylko zmienić to dla swojego konta użytkownika.
Podaj hasło jako android . Jeśli nie poprosi o hasło, ścieżka klucza jest nieprawidłowa.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-02 11:22:41
Kiedy zbudowałem moją aplikację Facebook. Użyłem klawisza Androida. Jest do tego funkcja haszująca. Powszechnie używane w Google API. (zobacz tam instrukcje). Jeśli jesteś właścicielem aplikacji i podpisałeś ją; nie powinno to być problemem w przeciwnym razie..w zasadzie masz przechlapane.Nie ma mowy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-02 11:06:43