Ключевой хеш для Facebook Android SDK - PullRequest
43 голосов
/ 03 декабря 2010

Я не могу понять, как получить хеш-ключ, необходимый для использования Android SDK Facebook. Я понял, что могу использовать keytool с этими командами:

  keytool -exportcert -alias [alias]
 -keystore [keystore] | openssl sha1 -binary | openssl enc -a -e

Единственная проблема в том, что я не знаю, куда вставить это, я попытался через командные окна (win7) и попытался открыть файл keytool.exe.

Ответы [ 9 ]

27 голосов
/ 03 декабря 2010

Вы можете установить Open SSL с здесь , что должно заставить вашу команду работать

20 голосов
/ 03 июля 2012

Я создал пакетный скрипт facebookkeydebug.bat , который возвращает желаемый хеш ключа Facebook.Просто отредактируйте скрипт, установите правильные пути, имя хранилища ключей и запустите его.

:: Getting Android key hash for Facebook app on Windows
:: Requirement: OpenSSL for Windows (http://code.google.com/p/openssl-for-windows/downloads/list)
:: Usage: set paths and run facebookkeydebug.bat

@echo Exporting keystore cert
keytool -exportcert -alias androiddebugkey -keystore C:\Users\myusername\.android\debug.keystore -storepass android -keypass android > debug.keystore.bin

@echo Converting to sha1
C:\PROGRAMS\openssl-0.9.8k_X64\bin\openssl sha1 -binary debug.keystore.bin > debug.keystore.sha1

@echo Converting to base64
C:\PROGRAMS\openssl-0.9.8k_X64\bin\openssl base64 -in debug.keystore.sha1 -out debug.keystore.base64

@echo Done, Android hash key for Facebook app is:
C:\PROGRAMS\openssl-0.9.8k_X64\bin\openssl base64 -in debug.keystore.sha1
@pause

РЕДАКТИРОВАТЬ: я опубликовал репозиторий с некоторыми пакетными сценариями для подписи и получения ключей сертификации в Windows: https://github.com/petrnohejl/Android-Scripts

16 голосов
/ 06 января 2014
  1. Загрузите и установите OpenSSL из http://slproweb.com/products/Win32OpenSSL.html на основе Windows 32 или 64-разрядной версии. (Примечание. Загрузите и установите первый Visual C ++ 208, распространяемый также с этого сайта) *
  2. Поместите каталог bin установленного OpenSSL в путь Windows.
  3. Откройте командную строку и перейдите в C: \ Users {Имя_пользователя} .android
  4. теперь поместите эту команду в команду cmd " keytool -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64 ". (См. https://developers.facebook.com/docs/android/getting-started#samples)
  5. Теперь введите пароль "facebook" без двойной кавычки.
  6. Теперь будет создан ключ хеша enter image description here
  7. Наконец перейдите на сайт разработчика Facebook. Убедитесь, что вы вошли в Facebook и, используя выпадающее меню в правом верхнем углу, перейдите в «Настройки разработчика»:
  8. Установив настройки разработчика, выберите «Образец приложения» в навигационной панели слева, добавьте и сохраните хэш ключа в своем профиле: enter image description here
14 голосов
/ 23 марта 2014

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

try {

   PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);

   for (Signature signature : info.signatures) 
   {
    MessageDigest md = MessageDigest.getInstance("SHA");
    md.update(signature.toByteArray());
    Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
   }

  } catch (NameNotFoundException e) {
   Log.e("name not found", e.toString());
  } catch (NoSuchAlgorithmException e) {
   Log.e("no such an algorithm", e.toString());
  }

Ссылка:

http://limbaniandroid.blogspot.com/2013/04/how-to-get-hash-key-for-integarte.html

8 голосов
/ 03 мая 2012

Чтобы было проще -

keytool.exe -list -alias androiddebugkey -keystore debug.keystore -v

это должно предоставить вам необходимые отпечатки пальцев, без хлопот при установке openssl.

, например

Certificate fingerprints:
         MD5:  1A:5E:AA:CB:1A:CF:68:F0:8B:DA:D8:BC:EE:4F:BF:EE
         SHA1: D2:89:D1:5A:BC:F8:E3:E5:62:4D:DD:20:DD:96:CD:AB:51:A1:C1:7F
         Signature algorithm name: SHA1withRSA
         Version: 3
3 голосов
/ 04 декабря 2014

Это пример того, как получить хэш ключа из хранилища ключей:

Сначала нам нужно получить пути:

Путь Java: C: \ Program Files \ Java \ jdk1.6.0_35 \ jre \ bin

Открыть путь SSL: C: \ OpenSSL-Win32 \ бин

(установить с: http://www.openssl.org/)

Путь к хранилищу ключей: C: \ Data \ ANDROID \ KeyStore \

2) затем перейдите в Командную строку и введите:

cd [путь Java]

3) затем введите:

keytool.exe -exportcert -alias [псевдоним] -keystore [Keystore Путь] \ debug.keystore | [Открыть путь SSL] \ openssl sha1 -binary | [Открыто Путь SSL] \ bin \ openssl base64

4) должен быть пароль вашего Keystore, и тогда у вас есть Hash Key, связанный с вашим Android Keystore.

enter image description here

Это документ о том, как установить Key Hash для Facebook:

https://developers.facebook.com/docs/android/getting-started#release-key-hash

1 голос
/ 08 июля 2015

Лучший способ - сгенерировать Key-Hash, используя код:

 public static void generateKeyHash(Context context) {
    try {
        PackageInfo info = context.getPackageManager().getPackageInfo(
                "com.example.user2.testapp",
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (PackageManager.NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }
}

вызовите этот метод один раз и сгенерируйте хэш ключа, наслаждайтесь

1 голос
/ 03 декабря 2010

Вы должны открыть окно командной строки. Перейдите в Пуск-> Выполнить и введите «cmd» и нажмите Enter. Затем вам нужно перейти к папке, где находится keytool (если она не указана в вашем пути), а затем введите эту команду.

То есть, предполагая, что команда предназначена для windows, а не для linux.

0 голосов
/ 22 августа 2015

C: \ Program Files \ Java \ jdk1.6.0_22 \ bin \ keytool.exe -exportcert -alias "typeYouraliasname" - расположение хранилища ключей вашего хранилища ключей | C: \ OpenSSL-Win32 \ bin \ openssl sha1 -binary | C: \ OpenSSL-Win32 \ bin \ openssl base64

...