Вопрос

Попытка создать приложение для Android с интеграцией Facebook, я дошел до части в документах, где вы должны генерировать хэш -файл ключа, он указывает на запуск следующего кода

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

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

Я просто хочу генерировать свой ключевой хэш

Может кто-то указать мне верное направление?

Это было полезно?

Решение

Удалить свой сертификат отладки под ~/.android/debug.keystore (на Linux и Mac OS X); Каталог - что -то вроде %userhome %/. Android в Windows.

Плагин Eclipse должен затем генерировать новый сертификат, когда вы затем пытаетесь создать пакет отладки.

Дай мне знать, если это работает.

Другие советы

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

1) Скачать OpenSSL из: здесь.

2) Сделайте openssl папка в В водить машину

3) Извлечь в это файлы ZIP openssl Папка создана в В Водить машину.

4) Скопируйте файл Debug.KeyStore из .android Папка в моем случае (C: users System.Android) и вставьте в папку JDK BIN в моем случае (C: Program Files Java JDK1.6.0_05 bin)

5) Откройте командную строку и дайте путь папки JDK Bin в моем случае (C: Program Files Java JDK1.6.0_05 bin).

6) Скопируйте следующий код и нажмите Enter

keytool -exportcert -alias androiddebugkey -keystore debug.keystore> c: openssl bin debug.txt

7) Теперь вам нужно введите пароль, Пароль = Android.

8) Если вы видите в openssl Папка Bin, вы получите файл с именем debug.txt

9) Теперь вы можете перезапустить командную строку или работать с существующей командной строкой

10) вернуться к C Drive и дать путь openssl папка

11) Скопируйте следующий код и вставьте

openssl sha1 -binary debug.txt> debug_sha.txt

12) Вы получите debug_sha.txt в папке OpenSsl Bin

13) Снова скопируйте следующий код и вставьте

openssl base64 -in debug_sha.txt> debug_base64.txt

14) Вы получите debug_base64.txt в папке OpenSsl Bin

15) Открыт debug_base64.txt Файл вот ваш ключ хэш.

Обновленный ответ (генерируя через код) Проще говоря:

По моему опыту, OpenSSL всегда был проблемным, я попробовал второй метод, предложенный Facebook. И это замечательно. Это лучший способ получить хэш -ключ.

Второй вариант - распечатать ключевой хэш, отправленный в Facebook, и использовать это значение. Внесите следующие изменения в методе OnCreate () в вашем основном деятельности:

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        try {
            PackageInfo info = getPackageManager().getPackageInfo(
                    "com.facebook.samples.loginhowto", 
                    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) {

        } catch (NoSuchAlgorithmException e) {

        }
        ...other operations

}//end of onCreate

Замените com.facebook.samples.loginhowto с вашим собственным именем пакета (имя пакета в manifest.xml).

Официальная ссылка - https://developers.facebook.com/docs/android/login-with-facebook/ (См. Внизу страницы)

Старый ответ (генерирование KeyHash с помощью OpenSSL)

  1. Для создания подписи вам нужно установлено OpenSSL на вашем ПК. Если у вас нет ни одной загрузки openssl отсюда
  2. В C:, создать openssl папка
  3. Извлеките содержимое загруженного файла openssl Zip в openssl папка в C:водить машину
  4. Откройте командную строку
  5. переехать в bin из openssl т.е. C:\openssl\bin в командной строке
  6. Запустите следующую команду, чтобы сгенерировать свой KeyHash. При генерации хэшишков он должен спросить вас паролем.

    keytool -exportcert -alias androiddebugkey -keystore "c: users anhsirk.android debug.keystore" | openssl sha1 -binary | OPENSSL BASE64

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

Дайте пароль как Android

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

Если все работает нормально, это должно дать вам общеизму ниже.

enter image description here

Правый ключ можно получить из самого приложения, добавив следующий код для поджаривания правильного хэша ключа (в случае Facebook SDK 3.0, это работает), это работает)

try {
            PackageInfo info = getPackageManager().getPackageInfo("com.package.mypackage",         PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
                Log.e("MY KEY HASH:", sign);
                Toast.makeText(getApplicationContext(),sign,         Toast.LENGTH_LONG).show();
            }
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}

Замените com.package.mypackage с именем пакета

I. Создайте ключевой хеш отладку для Facebook

Добавьте код для распечатки ключа для Facebook

    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.google.shoppingvn", PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.i("KeyHash:",
                    Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }

II Создайте ключевой выпуск хэша для Facebook

  1. Скачать openssl-0.9.8e_x64
  2. Сделайте папку OpenSSL в дискоте C
  3. Извлечь файлы ZIP в папку OpenSSL
  4. Start -> run: cmd (нажмите Enter)
  5. (Нажмите) CD C: Program Files Java jdk1.6.0_45 bin. Примечание: C: Program Files Java jdk1.6.0_45 bin: is path to jdk -папка на вашем компьютере
  6. (нажмите) KeyTool -exportCert -alias GCI -KeyStore D: FOLDER KEYSTORERELEASE | C: openssl bin openssl sha1 -binary | C: openssl bin openssl base64. ПРИМЕЧАНИЕ: D: Folder KeyStorEreleas

  7. Введите пароль Store Store: это пароль, когда ваш регистр KeyStorereAse.

    Тогда у вас будет ключевой хэш: jdehabcdiqedwayz5ow4sjsxlsw =

  8. Войти facebook. Доступ к управлению приложениями. Вставьте ключевой хэш в ваше приложение на Developers.facebook.com

Самый простой способ генерировать хэш -ключ.

Требование: ША1 КЛЮЧ

Вы можете найти ключ SHA1, запустив Подпись

См. Ниже изображение.

enter image description here

После запуска файла будет сгенерирован ваш выход, содержащий требуемый ключ SHA1.

enter image description here

Тогда Готоhttp://tomeko.net/online_tools/hex_to_base64.php

и вставьте свой ключ SHA1

enter image description here

И, наконец, вы получите требуемый хэшиш.

Самое простое решение для этой проблемы:

У меня была эта проблема уже два месяца. Мои ключевые хэши были питлинг до 9. Сегодня я наконец нашел простое решение:

ШАГ 1:

Установите загрузку Facebook SDK на странице разработчика Facebook на своем телефоне. Не установите обычное приложение Facebook. Убедитесь, что вы можете войти в Facebook. Затем выберите.

ШАГ 2:

Экспортируйте свое приложение с вашим ключом окончательного выпуска в качестве APK, как и при загрузке его в Playstore.

ШАГ 3:

Поместите файл APK на свой телефон через USB -кабель или USB -палочку.

Шаг 4:

Установите приложение, используя диспетчер файлов: Пример

Шаг 5:

Запустите свое приложение и попробуйте войти в систему с Facebook. Диалог откроет и скажет вам: «Ключ, который ваш, не был найден в консоли разработчика Facebook».

Шаг 6:

Запишите ключ.

Шаг 7:

Поместите его в свою консоли разработчика Facebook и сохраните. Теперь все готово. Любой, кто загружает ваше приложение, опубликованное в более раннем использованном магазине ключей, может войти в Facebook.

Наслаждаться

Если вы выпускаете, используйте хранилище ключей, с которым вы использовали для экспорта вашего приложения, а не Debug.KeyStore.

Пароль сертификата отладки - Android, а не Android

В конце концов :)

Вот моя история:

  1. Добавьте этот код в свое основное действие после установки макета.

    try { 
      PackageInfo info = getPackageManager().getPackageInfo("PROJECTNAME", PackageManager.GET_SIGNATURES);
      for (Signature signature : info.signatures) {
          MessageDigest md = MessageDigest.getInstance("SHA");
          md.update(signature.toByteArray());
          String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
          Log.e("MY KEY HASH:", sign);
          //textInstructionsOrLink = (TextView)findViewById(R.id.textstring);
          //textInstructionsOrLink.setText(sign);
          Toast.makeText(getApplicationContext(),sign, Toast.LENGTH_LONG).show();
      }
    } catch (NameNotFoundException e) {
        Log.d("nope","nope");
    } catch (NoSuchAlgorithmException e) {
    }
    
  2. Измените ProjectName на имя вашего пакета!

  3. Подписать свое приложение (Android Tools-> Приложение для подписания экспорта)
  4. В вашем основном действии, где вы вставляете код из 2 опции, в макете создайте TextView с помощью идентификационного текста
  5. Не понаблюдайте две строки, что ваш код знака будет установлен на TextView 6 Wuolia, у вас есть хэш, установите приложение на свой телефон !!! И проверьте свой хэш -ключ!
  6. Теперь, когда это видно, перейдите в приложение Facebook, которое вы создали, и добавьте его в [ключевые хэши
  7. Обратите внимание, что имя вашего пакета должно быть таким же, как и в Facebook [имя пакета] под [ключ -хэши]
  8. Хорошего дня :)

Одно линейное решение для создания для Facebook

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

Чтобы сгенерировать хэш для выпуска, вам нужно выполнить несколько простых шагов.

1) Скачать Openssl

2) Сделайте папку OpenSSL в дискоте C

3) Извлеките файлы ZIP в эту папку OpenSSL, созданную в дискоте C.

4) Скопируйте файл debug.keystore из папки .android в моем случае (C: users system.android) и вставьте в папку JDK Bin в моем случае (C: Program Files Java jdk1.6.0_05 bin)

5) Откройте командную строку и дайте путь папки JDK BIN в моем случае (C: Program Files Java JDK1.7.0_40 bin).

6) Скопируйте следующий код и нажмите Enter

keytool -exportcert -alias abcd -keystore d: projects myappolder keystore.txt | C: openssl bin openssl Sha1 - двоичный | C: openssl bin openssl base64 ex -keytool -exportcert -alias (ваше имя псевдоним Apk Введите здесь, как и мой знак Apk Alian name is abcd) -keystore "Подписанный APK -сгенерированный магазин Apth Enter здесь" | «Путь папки OpenSsl Bin Введите здесь» SHA1 - Binary | «Путь папки OpenSsl Bin Enter здесь» Base64

7) Теперь вам нужно ввести пароль, пароль = (введите здесь пароль для хранения ключей знаки)

8) У вас есть магазин ключей, который используется для хэша выпуска App Key

Несмотря на то, что эта ветка старая, все же я хотел бы поделиться своим опытом (недавно начал работать с Facebook), что мне кажется прямо:

  1. Скачать OpenEnssl с ссылки Bellow:https://code.google.com/p/openssl-for-windows/downloads/list
  2. Разируйте его на локальный диск (например, c: openssl)
  3. Чтобы получить ключ разработки для интеграции Facebook, используйте следующую команду из командной строки в Windows:

    keytool -exportcert -alias androiddebugkey -keystore %homepath %. android debug.keystore | "C: openssl bin openssl.exe" sha1 -binary | "C: openssl bin openssl.exe" base64

Примечание!: Замените путь для openssl.exe (в этом примере «C: openssl bin openssl.exe») с вашим собственным путем установки.

  1. Он будет предпринять для пароля, например,

Введите пароль Store Store: Android

Введите Android как пароль, как показано выше.

Вот и все! Вам даст длинный ключ 28 символов. Ваше здоровье!

Используйте ту же процедуру, чтобы получить ключ выпуска. Просто замените команду следующим образом и используйте псевдоним клавиш выпуска.

keytool -exportcert -alias your_release_key_alias -keystore your_release_key_path | «Путь для openssl.exe» sha1 -binary | OPENSSL BASE64

Генерировать ключ отладки хэша

  public String hashkey(Context context) {
        String keyhash = "";
        try {
            PackageInfo info = context.getPackageManager().getPackageInfo(context.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));
                keyhash = Base64.encodeToString(md.digest(), Base64.DEFAULT);
            }
        } catch (PackageManager.NameNotFoundException e) {

        } catch (NoSuchAlgorithmException e) {

        }
        return keyhash;
    }

Генерировать хэш -ключ высвобождения

 keytool -exportcert -alias specialbridge -keystore /home/shilpi/newproject/specialBridge/SpecialBridgeAndroid/keystore/specialbridge.jks | openssl sha1 -binary | openssl base64

Отличный пост в блоге на эту тему

Извлечение ключа из ключа .p12

  1. Откройте терминал или командную строку и перейдите к тому, где находится ваш ключ .p12.
  2. Введите: «keyTool -v -list -KeyStore mycert.p12 -Storetype pkcs12 ″, где mycert.p12 является именем файла вашего ключа .p12.
  3. Введите пароль хранилища ключа (тот, который вы использовали при экспортировании ключа .p12). 4 Скопируйте SHA1 отпечаток пальцев.
  4. Байты на сигнатуре отпечатков пальцев SHA1 необходимы для написания файла «sha1.bin». Вы можете использовать шестнадцатеричный редактор для вставки байтов, которые вы скопировали. После этого сохраните файл как «sha1.bin».
  5. Еще раз откройте терминал и введите: «OpenSSL Base64 -in Sha1.bin -out base64.txt».
  6. Полученный «base64.txt» будет содержать ключевой хэш, необходимый для Facebook.

Отличный и простой шестнадцатеричный редактор для Mac: Hexfiend

OpenSSL должен быть предварительно установлен на Mac, и вот ссылка для версии Windows.

Ссылка на сайт

Попробуйте пропустить пароль для ключа и хранить как часть команды

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

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

А ссылка на скачивание банка

Работает в Windows 8 ... не пробовал ни одной другой ОС.

Привет всем, это моя история, как я подписал, есть ключ для Facebook

Прежде всего, у вас только что копируйте эти 2 метода в своем первом классе

    private void getAppKeyHash() {
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                getPackageName(), PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md;

            md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            String something = new String(Base64.encode(md.digest(), 0));
            System.out.println("HASH  " + something);
            showSignedHashKey(something);

        }
    } catch (NameNotFoundException e1) {
        // TODO Auto-generated catch block
        Log.e("name not found", e1.toString());
    } catch (NoSuchAlgorithmException e) {

        Log.e("no such an algorithm", e.toString());
    } catch (Exception e) {
        Log.e("exception", e.toString());
    }
}
public void showSignedHashKey(String hashKey) {

    AlertDialog.Builder adb = new AlertDialog.Builder(this);
    adb.setTitle("Note Signed Hash Key");
    adb.setMessage(hashKey);
    adb.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {

        }
    });

    adb.show();
}

** Звоните в функцию Funcation getAppkeyHash () из вашего метода Oncreate, если вы хотите подписанный хэш, а затем сделайте подписанную сборку установки подписанную сборку и запуска Подписанный APK **

Если ваш пароль = Android неверен, наведите пароль вашего компьютера, который он работает для меня.

И для создания KeyHash попробуйте эту ссылку Здесь

Единственное, что работает для меня, - это использовать пароль android. Анкет Почему это не упоминается ни в каких гидах?

Используйте это в Kotlin для хэша печати в журнале

try {
        val info = context.getPackageManager().getPackageInfo(context.packageName,
                PackageManager.GET_SIGNATURES);
        for (signature in info.signatures) {
            val md = MessageDigest.getInstance("SHA")
            md.update(signature.toByteArray())
            Log.d("Key hash ", android.util.Base64.encodeToString(md.digest(), android.util.Base64.DEFAULT))
        }
    }catch (e:Exception){

    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top