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?

Author: Freak, 2013-07-02

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):

  1. Otwórz swój projekt w studio i kliknij ikonę gradle.
  2. Wybierz swoją aplikację -> zadania -> android - > SigningReport

To uruchomi zadanie gradle, które wydrukuje debugowanie i wyda certyfikat z kluczami md5 i sha1

 29
Author: amalBit,
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

 30
Author: user521297,
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

  1. aby wygenerować podpis musisz zainstalować openssl na swoim komputerze. Jeśli nie mam żadnego OpenSSL do pobrania stąd
  2. W C: , Utwórz folder openssl
  3. rozpakuj zawartość pobranego pliku zip OpenSSL do OpenSSL folder w C: drive
  4. Otwórz wiersz polecenia
  5. Przenieś do kosza OpenSSL czyli C:\openssl\bin w wierszu polecenia
  6. 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.

 8
Author: Shani Goriwal,
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.

 0
Author: SonicWind,
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