Как создать Android Hash Key Hash? - PullRequest
       43

Как создать Android Hash Key Hash?

155 голосов
/ 22 сентября 2011

Я вообще не понимаю этот процесс.Я был в состоянии перейти к папке, содержащей keytool в Java SDK.Хотя я продолжаю получать сообщение об ошибке, openssl не распознается как внутренняя или внешняя команда.Проблема в том, что даже если я смогу заставить это работать, что я буду делать и с чем потом?

Ответы [ 22 ]

5 голосов
/ 16 февраля 2016

Для простой ссылки на учебник для генерирования ключей KeyHash Здесь

Скачать openssl с ЗДЕСЬ

3 голосов
/ 08 февраля 2018

Запустите либо это в вашем приложении:

FacebookSdk.sdkInitialize(getApplicationContext());
Log.d("AppLog", "key:" + FacebookSdk.getApplicationSignature(this)+"=");

Или это:

public static void printHashKey(Context context) {
    try {
        final PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
        for (android.content.pm.Signature signature : info.signatures) {
            final MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            final String hashKey = new String(Base64.encode(md.digest(), 0));
            Log.i("AppLog", "key:" + hashKey + "=");
        }
    } catch (Exception e) {
        Log.e("AppLog", "error:", e);
    }
}

А затем посмотрите на журналы.

Результат должен заканчиваться на "= ".

Решение основано на здесь и здесь .

3 голосов
/ 24 июня 2015

Скачать open ssl :

Затем добавьте openssl \ bin к системным переменным пути:

Мой компьютер -> Свойства -> Расширенные настройки -> Дополнительно -> Системные переменные -> в разделе системных переменных найдите путь и добавьте его в его окончания: ; YourFullOpenSSLDir \ Bin

Теперь откройте командную строку в папке jdk \ bin C: \ Program Files \ Java \ jdk1.8.0_40 \ bin (в Windows удерживайте shift и щелкните правой кнопкой мыши -> открыть командную строку здесь) и используйте:

keytool -exportcert -alias keystorealias -keystore C:\yourkeystore\folder\keystore.jks | openssl sha1 -binary | openssl base64

И скопируйте число длиной 28, которое оно генерирует после ввода пароля.

2 голосов
/ 24 августа 2017

Вы можете получить все свои отпечатки пальцев от https://console.developers.google.com/projectselector/apis/credentials
И использовать этот код Kotlin для преобразования его в хеш-код:

fun main(args: Array<String>) {
    listOf("<your_production_sha1_fingerprint>",
            "<your_debug1_sha1_fingerprint>",
            "<your_debug2_sha1_fingerprint>")
            .map { it.split(":") }
            .map { it.map { it.toInt(16).toByte() }.toByteArray() }
            .map { String(Base64.getEncoder().encode(it)) }
            .forEach { println(it) }
}
1 голос
/ 09 июля 2019

Если вы уже загрузили приложение в Play store, вы можете сгенерировать Hash Key следующим образом:

1) Зайдите в Управление релизами здесь

2) Выберите Управление релизами -> Подписание приложения

3) Вы можете увидеть ключ SHA1 в шестнадцатеричном формате сертификата подписи приложения.

4) Скопируйте SHA1 в шестнадцатеричном формате и преобразуйте его в формат base64, вы можете использовать эту ссылку, чтобы сделать это без SHA1: часть шестнадцатеричного числа.

5) Зайдите в консоль разработчика Facebook и добавьте ключ (после преобразования в base 64) в настройках -> basic -> hash.

1 голос
/ 25 июня 2019

EASY WAY -> Не устанавливать openssl -> ИСПОЛЬЗОВАТЬ GIT BASH!

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Пароль по умолчанию - "android"

У большинства из нас естьGit Bash установлен, так что это мой любимый способ.

1 голос
/ 17 сентября 2018

https://developers.facebook.com/docs/android/getting-started/

4.19.0 - 25 января 2017 г.

Facebook SDK

Изменено

Facebook SDK теперь автоматически инициализируется при приложенииначинается.В большинстве случаев ручной вызов FacebookSDK.sdkInitialize () больше не требуется.Подробнее см. Руководство по обновлению 1011 *.

Для отладки

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 (NoSuchAlgorithmException e) {
    e.printStackTrace();
} catch (Exception e) {
    e.printStackTrace();
}
1 голос
/ 03 октября 2017

Я нашел самый простой инструмент и использовал его много раз, он отлично работает. проверить это, это поможет.

Проверьте этот ответ для более подробной информации.

0 голосов
/ 13 июля 2019

это также поможет новичкам.

просто добавьте больше подробностей к ответу @ coder_For_Life22.

если этот ответ вам не поможетзабудьте поднять голос.это мотивирует нас.

для этого вы уже должны знать путь к файлу хранилища ключей приложения и пароль

для этого примера рассмотрим ключхранится в "c: \ keystorekey \ new.jks"

1. открыть эту страницу https://code.google.com/archive/p/openssl-for-windows/downloads

2. загрузить 32- или 64-битный zip-файл в соответствии с операционной системой Windows.

3. Извлеките загруженный файл в любое место и запомните путь.

4. Для этого примера мы считаем, что вы извлекли папку в папке загрузки.

, поэтому адрес файла будет"C: \ Users \ 0 \ Downloads \ openssl-0.9.8e_X64 \ bin \ openssl.exe";

5. Теперь на клавиатуре нажмите кнопку Windows + R.

6. Это будетоткройте окно запуска.

7. введите cmd и нажмите Ctrl + Shift + Enter .

8. Это откроет командную строку от имени администратора.

9. здесь перейдите в папку bin Java:

если вы используете jre, предоставленный Android Studio, вы найдете путь следующим образом:
a.открытая андроид студия.
б.файл-> структура проекта
c.на левой панели щелкните «Местоположение SDK»
d.на правой панели ниже 'JDK location' находится ваш путь jre.
e.добавьте «\ bin» в конце этого пути, так как файл «keytool.exe», который нам нужен, находится внутри этой папки.
для этого примера, который я считаю, вы установили Java отдельно, а следующий путь -
"C: \ Program Files \ Java \ jre-10.0.2 \ bin"
, если вы установили 32-битную Java, она будет находиться в
"C: \ Program Files (x86) \ Java \ jre-10.0.2\ bin "
10. теперь с указанными выше путями выполните команду следующим образом:

keytool -exportcert -alias androiddebugkey -keystore "c:\keystorekey\new.jks" | "C:\Users\0\Downloads\openssl-0.9.8e_X64\bin\openssl.exe" sha1 -binary |"C:\Users\0\Downloads\openssl-0.9.8e_X64\bin\openssl.exe" base64
Вас попросят ввести пароль, укажите пароль, который вы указали при создании ключа хранилища ключей.

!!!!!! это даст вам ключ

ошибки: если вы получите:
---
'keytool' не распознается как внутренняя или внешняя команда
---
это означает, что java установлен где-то еще.

0 голосов
/ 30 мая 2019

Попробуйте этот ответ

https://stackoverflow.com/a/54513168/9236994

с минимальными усилиями помогает решить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...