Подтвердить что ты не робот

Есть ли способ получить ключевой хэш из подписанного APK?

Есть ли способ получить ключевой хэш из подписанного APK? У нас есть подписанный Android apk файл, и мы хотим узнать ключевой хэш этого APK для Facebook SDK. Можем ли мы сделать это чем-то вроде jarsigner?
Любые предложения?

4b9b3361

Ответ 1

Для пользователей Windows, получающих ключ от openssl, может быть сложно несколько раз. Я всегда использую это, чтобы найти правильное  подпись. Просто вставьте этот код в свой onCreate() и запустите.

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

Использование студии Android (2.1.2):

  • Откройте проект в студии и нажмите на значок gradle.
  • Выберите приложение → Задачи → android → SigningReport

Это запустит задачу gradle, которая будет печатать сертификат отладки и выпуска с помощью ключей md5 и sha1

Ответ 2

В Linux я использовал эту команду, чтобы получить хеш ключа из apk:

 keytool -list -printcert -jarfile [path_to_your_apk] | grep -Po "(?<=SHA1:) .*" |  xxd -r -p | openssl base64

Для пользователей Mac (OS X), так как нет поддержки grep -P

keytool -list -Printcert -jarfile ~/Downloads/YOURAPKFILE.apk | grep "SHA1: " | cut -d " " -f 3 | xxd -r -P | openssl base64

Ответ 3

Вы можете скачать openssa из здесь

  • Чтобы создать подпись, вам нужно открыть openssl на вашем компьютере. если ты dont have one download openssl отсюда
  • В C:, Создать папку openssl
  • Извлечь содержимое загруженного zip файла openssl в openssl папка в папке C:
  • Откройте командную строку
  • Переместить в bin openssl i.e C:\openssl\bin в командной строке
  • Выполните следующую команду для генерации вашей клавиатуры. При создании hashkey, он должен задать вам пароль.

    keytool -exportcert -alias androiddebugkey -keystore   "C:\Users\Anhsirk.android\debug.keystore" | openssl sha1 -binary | openssl base64
    

ПРИМЕЧАНИЕ. В приведенном выше коде обратите внимание, что вам нужно указать свой путь к пользователю (то есть в моем случае это C:\Users\Anhsirk, вам просто нужно изменить его для своего пользователя счет.

Дайте пароль как андроид. Если он не запрашивает пароль, ваш путь к хранилищу ключей неверен.

Ответ 4

Когда я построил свое приложение для Facebook. Я использовал свое хранилище ключей для Android. Для этого есть хеширующая функция. Обычно используется в API Google (см. Там инструкции). Если вы являетесь владельцем приложения и подписали его; это не должно быть проблемой в противном случае. В основном вы ввернуты. Нет никакого способа.

Ответ 5

Недавно нашел это приложение Hasher, которое помогает извлекать хеш-код из sha1 (из консоли Google Play Store) и наоборот.