Key hash для Android Android SDK
Я не могу понять, как получить Key Hash для использования Android Android SDK. Я понял, что могу использовать keytool
с этими командами:
keytool -exportcert -alias [alias]
-keystore [keystore] | openssl sha1 -binary | openssl enc -a -e
Единственная проблема в том, что я понятия не имею, где ее вставить, я пробовал через окна команд (win7), и я попытался открыть файл keytool.exe.
Ответы
Ответ 1
- Загрузите и установите OpenSSL из http://slproweb.com/products/Win32OpenSSL.html на основе окон 32 или 64 бит. (Примечание. Загрузите и установите первый визуальный С++ 208 redisributable с этого сайта также)
- Поместите каталог bin установленного OpenSSL в путь к окну.
- Откройте командную строку и перейдите к C:\Users {User_Name}.android
- теперь поместите эту команду на cmd " keytool -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64". (см. https://developers.facebook.com/docs/android/getting-started#samples)
- Теперь введите пароль "facebook" без двойной кавычки.
- Теперь будет создан хэш-ключ
![enter image description here]()
- Наконец, зайдите на сайт разработчиков Facebook. Убедитесь, что вы вошли в Facebook и, используя раскрывающееся меню в правом верхнем углу, перейдите в "Настройки разработчика":
- Как только вы находитесь в настройках своего разработчика, выберите "Пример приложения" из навигации слева и добавьте и сохраните хэш-код ключа в свой профиль:
![enter image description here]()
Ответ 2
Вы можете установить Open SSL из здесь, что должно заставить вашу команду работать
Ответ 3
Я создал пакетный script facebookkeydebug.bat, который возвращает желаемый хэш-код Facebook. Просто отредактируйте script, установите правильные пути, имя хранилища ключей и запустите его.
:: 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
EDIT: я опубликовал репо с некоторыми пакетными скриптами для подписания и получения ключей сертификата в Windows: https://github.com/petrnohejl/Android-Scripts
Ответ 4
вы можете использовать код ниже, чтобы получить клавишу 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.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
Ответ 5
Сделать проще -
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
Ответ 6
Это пример того, как получить хэш ключа из хранилища ключей:
сначала нам нужно получить пути:
Путь 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 | [Open SSL Path]\openssl sha1 -binary | [Открыто SSL-путь]\bin\openssl base64
4) необходимо указать пароль вашего Keystore, а затем у вас есть Hash Key
, связанный с вашим Keystore Android.
![enter image description here]()
Это документ о том, как установить Key Hash
для Facebook
:
https://developers.facebook.com/docs/android/getting-started#release-key-hash
Ответ 7
Вам нужно открыть окно командной строки. Перейдите в start- > run и введите 'cmd' и нажмите enter. Затем вам нужно перейти в папку, в которой keytool
(если она не указана в вашем пути), а затем введите эту команду.
То есть, считая, что команда предназначена для окон, а не для linux.
Ответ 8
Лучший способ - создать 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) {
}
}
вызовите этот метод один раз и создайте ключ-хеш, наслаждайтесь
Ответ 9
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