Як отримати відбиток сертифіката підпису (SHA1) для OAuth 2.0 на Android?


154

Я намагаюся зареєструвати додаток для Android, виконуючи кроки в https://developers.google.com/console/help/#installed_applications, що призводить до того, щоб я слідкував за http://developer.android.com/tools/publishing/app- sign.html .

Однак я не впевнений, як отримати відбиток сертифіката підпису (SHA1).

Я спочатку використовував плагін Eclipse ADT для експорту та створення сховища / ключа. Потім я спробував це зробити, keytool -list keystore mykeystore.keystoreі це дає мені відбиток сертифіката MD5. Чи потрібно повторно підписувати (тобто я не можу використовувати майстра експорту затемнення)?

Чи можу я спочатку використовувати сертифікат налагодження?


Перед експортом / завантаженням програми використовуйте відповідь user2453771. Після експорту / завантаження використовуйте відповідь frederick nyawaya. Пам'ятайте про це і заощадите собі кілька годин болю.
SmulianJulian

як генерувати випуск apk keystore за допомогою Linux-терміналу
Manish

1
Найпростіший спосіб отримати SHA-1 для режиму випуску та налагодження андроїд-студії. Перевірте це
Наєм Ібрагім

Відповіді:


174

Почніть процес експорту, щоб створити apk для свого додатка та скористатися виробничим ключем. На останній сторінці відображаються як відбитки ваших сертифікатів SHA1, так і MD5введіть тут опис зображення


2
MD5 з'являється у logcat зараз (не у вікні під час створення).
Інструмент

4
Виконайте процес експорту двічі. Це буде показано у другій черзі.
keybee

Чи є спосіб створити новий за допомогою цього методу? Я намагався це зробити, але мій старий файл зберігання ключів є, але я думаю, що це неправильний (мені потрібен сертифікат налагодження, а не випуск), плюс я забув пароль. > _ <Дякую, якщо у вас є підказка.
Azurespot

ПРИМІТКА. Вам не потрібно повністю експортувати .apk. Ви можете скасувати цю процедуру після копіювання SHA1, щоб уникнути створення зайвих .apks.
GraSim

139

Я знаю, що на це питання відповіли, але саме так я знайшов свій підпис для зберігання ключів за замовчуванням. У програмі Eclipse ви перейдете до Windows -> Налаштування -> Android -> Build

введіть тут опис зображення


5
Це має бути прийнятою відповіддю, оскільки це найпростіший спосіб.
Мустафа


3
Хлопці, будь ласка, зауважте, що безпечна відповідь - це @frederick nyawaya. Якщо у вашому додатку було створено та публікувати ключові сховища (що в більшості випадків трапляється, карта НЕ буде працювати на ваших клієнтах. І Бог знає, коли ви це дізнаєтесь, оскільки вона працює добре на вашому власному комп’ютері. Будьте уважні. Це легко, але ви, швидше за все, отримаєте непрацюючу карту на своїх клієнтських пристроях
Tina

92

Я думаю, що це спрацює ідеально. Я використовував те саме:

Для Android Studio:

  1. Клацніть Побудувати > Створити підписаний APK .
  2. Ви отримаєте поле для повідомлення, просто натисніть кнопку ОК.
  3. Тепер з’явиться ще одне вікно, просто скопіюйте Key Store Path .
  4. Тепер відкрийте командний рядок і перейдіть до C: \ Program Files \ Java \ jdk1.6.0_39 \ bin> (або будь-яка встановлена ​​версія jdk).
  5. Введіть keytool -list -v -keystore та вставте свій шлях зберігання ключів (наприклад, C: \ програмні файли \ Java \ jdk1.6.0_39 \ bin> keytool -list -v -keystore "E: \ Мої проекти \ Android \ android студія \ підписані apks \ Hello World \ HelloWorld.jks ").
  6. Тепер він запитає пароль магазину ключів , надасть свій і натисніть, Enterщоб отримати ваші ключі сертифікатів SHA1 та MD5.

Файл сховища ключів, створений на іншій машині, я можу отримати sh1 з тим самим файлом зберігання ключів з вищезазначеною процедурою на різних машинах
Mahendra

Дуже дякую
Hiren

74

Якщо ви використовуєте Mac чи навіть Linux, просто скопіюйте та вставте це на додаток Terminal, і ви отримаєте ключ SHA1 негайно. Не потрібно нічого змінювати.

 keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

Приклад виводу:

Alias name: androiddebugkey
Creation date: 17 Feb 12
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4f3dfc69
Valid from: Fri Feb 17 15:06:17 SGT 2012 until: Sun Feb 09 15:06:17 SGT 2042
Certificate fingerprints:
     MD5:  11:10:11:11:11:11:11:11:11:11:11:11:11:11:11:11
     SHA1: 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:01:11
     Signature algorithm name: SHA1withRSA
     Version: 3

Приклад @yuku, будь ласка. /home/desktop/././. , abc.jks, який пароль n все, чи потрібні нам усі ці деталі ??
Прабс

Дякую. Тільки це найпростіший спосіб.
Сайка

Ти фактично врятував мені день. Дякую тонну.
Karan Nagpal

keytool -list -v -keystore my-release-key.keystore
Снігові бази

Клавіатура JKS використовує фірмовий формат. Рекомендується перейти на PKCS12, який є галузевим стандартним форматом, використовуючи "keytool -importkeystore -srckeystore <використання існуючого ключа-шляху до магазину> / <variant-name> .keystore -destkeystore <шлях нового ключа-магазину> / < variant-name> .keystore -deststoretype pkcs12 ".
Арпіт Дж.

68

використовувати це в командному рядку

c:\Program Files\Java\jdk1.6.25\bin>keytool -list -v -keystore c:\you_key_here.key

1
це я відчув, що це найпростіший і в той же час стандартний спосіб, оскільки все більше людей переходять на IntelliJ / Studio і не мають доступу до зручності Eclipse / ADT. Будьмо, друже!!
Хімадрі Пант

Чому його запитують у мене пароль
Abhijit Chakra

я отримав, доступ заборонено.
sudhakar phad

59

Відкрийте термінал (в Unix , MAC ), ( cmdв Windows ) і cdдо цього (вашого Java) шляху:

C:\Program Files\Java\jdk1.6.0_43\bin>

Виконайте цю команду:

keytool -list -v -keystore C:\Users\leon\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

Просто змініть шлях на debug.keystoreі ви отримаєте відбитки пальців MD5 та SHA-1.


40
keytool -list -v -keystore "keyStoreName"

Запустіть цю команду з каталогу, в якому зберігається магазин брелоків вашої програми.


Це можна використовувати для отримання SHA1 для вашого клієнтського додатка, який ви експортуєте та публікуєте. Це, мабуть, відрізняється від того, яке ви бачите в затемненні, яке є налагоджувальним сховищем.
dannyhan12

29

В Android Studio виконайте наступні дії:

  1. Клацніть меню властивостей Gradle праворуч від IDE-студії для Android.
  2. Розгорніть дерево завдань.
  3. Клацніть на підписання доповіді Ви можете побачити свій SHA1 на нижній консолі

введіть тут опис зображення


13

Подивіться, чи хочете ви використовувати Google Mapв цей час, вам потрібен MD5відбиток пальців для створенняapi kay Google map у вашому додатку для Android.

Команда Keytool генерує MD5відбиток пальця, якщо ви використовуєте, JDK 1.6і він генерує SHA1відбиток пальця, якщо ви використовуєте JDK 1.7.

Тож річ у тому, що якщо ви хочете підписати свою заявку на публікацію, то прочитайте це .

І якщо ви хочете скористатися, google-mapпрочитайте це .


Дякуємо за повтор Акшай. Мабуть, мені потрібно було додати -v до своєї команди keytool, щоб показати інші відбитки сертифікатів. Крім того, мабуть, я можу використовувати сертифікат налагодження для створення ідентифікатора клієнта.
Олексій

1
Переважно. Я вирішив своє питання створення ідентифікатора клієнта. Однак я взагалі новачок в OAuth, а не в тому, як працюють сертифікати та відбитки пальців. Я думаю, що сертифікат може мати відбиток MD5 і SHA1? Принаймні, це я отримую, коли виконую keytool -list -v etcкоманду
Олексій

12

Якщо ви використовуєте IntelliJ (12+?), Перейдіть до меню Створення / генерування підписаного Api

Після заповнення спливаючого вікна отримайте дані у полі "Ключовий шлях до магазину" (наприклад, C: \ Users \ user \ Documents \ store \ store)

І запустити в командному рядку:

>keytool -list -v -keystore "C:\Users\user\Documents\store\store"

....
         MD5: 11:C5:09:73:50:A4:E5:71:A2:26:13:E0:7B:CD:DD:6B
    -->  SHA1: 07:0B:0E:E8:F7:22:59:72:6A:1C:68:05:05:CF:2E:6F:59:43:48:99
         SHA256: E6:CE:DA:37:C1:18:43:C1:A3:F0:9E:8F:1A:C2:69:AF:E6:41:F7:C0:18:
1D:1D:55:5D:F0:52:6C:EE:77:84:A7
...

Удачі


12

Якщо хтось користується студією Android ...

натисніть: Створити> Створити ввійшли в APK Створіть новий ключ: це створить файли ".jks"

Використовуйте наступну команду для читання даних (SHA1 та іншої інформації):

$ keytool -list -v -keystore filename.jks


додаткова порада : команда для створення Key Hash для facebook$keytool -keystore filename.jks | openssl sha1 -binary | openssl base64
MuhFred

4

Для тих, хто використовує OpenSSL, ви можете отримати відбиток SHA1 таким чином:

OpenSSL> dgst -sha1 my-release-key.keystore

Це призведе до наступного результату:

введіть тут опис зображення


4

Якщо ви використовуєте Android Studio. Вам не потрібно генерувати відбиток SHA1, використовуючи підказку cmd. Вам просто потрібно створити проект із картковою активністю Android Studio.У проекті ви можете отримати відбиток пальців у google_maps_api.xml у папці Значення. Сподіваюся, що це вам допоможе. :)

введіть тут опис зображення


4

Ось моє просте рішення для цього:

Натисніть на Gradle кнопку, ви можете знайти її в правій верхній частині. ви побачите всі файли gradle. Тепер перейдіть на android і двічі клацніть на підписувати репортаж. Після того, як збірка gradle закінчиться, ви побачите ключ SHA. Перегляньте наведені нижче зображення покрокове керівництво

Після натискання на Gradle перевірте наведені нижче зображення. Сподіваюся, що це комусь допоможе.

КРОК 1:

Зображення Крок перший

КРОК 2:

Зображення Крок другий


3

Якщо ви використовуєте Android Studio. Ви можете швидко отримати відбиток сертифіката сертифіката SHA1 (налагодження, випуск ... всі типи збірки !!) за допомогою задач Gradle :

підписання репортажу

SHA1 відображається в журналах повідомлень

Плагін Android (налаштований у додатку gradle) створює режим налагодження за замовчуванням.

com.android.application

Маршрут файлу до магазину ключів:

ДОМАШНЯ / .android / debug.keystore

Я рекомендую долучити debug.keystore до build.gradle. Для цього помістіть файл debug.keystore у папку додатків, а потім додайте SigningConfigs у додатку gradle:

apply plugin: 'com.android.application'

    android {
        ................
        signingConfigs {
            debug {
                storeFile file("../app/debug.keystore")
                storePassword "android"
                keyAlias "androiddebugkey"
                keyPassword "android"
            }
            release {
                storeFile file("../app/debug.keystore")
                storePassword "android"
                keyAlias "androiddebugkey"
                keyPassword "android"
            }
        }    
        ........
    }

Додатково: Якщо ви хочете створювати для випуску, помістіть файл release.keystore у папку додатків. (У цьому прикладі використовується той же debug.keystore)



3

Я вперше був таким заплутаним, але пропоную вам остаточне робоче рішення для Windows:

1) Відкрийте cmd та перейдіть до каталогу Java / jdk / bin (просто натисніть, cd ..щоб повернути одну папку назад та cd NAME_FOLDERперейти одну папку вперед), у моєму випадку - остаточну папку:C:\Program Files\Java\jdk1.8.0_73\bin> введіть тут опис зображення

2) Тепер введіть цю команду keytool -list -v -keystore C:\Users\YOUR_WINDOWS_USER\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

У результаті ви повинні отримати щось подібне: введіть тут опис зображення


2

Я думаю, що це спрацює ідеально. Я використовував те саме:

Для Android Studio:

Клацніть Побудувати> Створити підписаний APK. Ви отримаєте поле для повідомлення, просто натисніть кнопку ОК.

Тепер з’явиться ще одне вікно, просто скопіюйте Key Store Path.

Тепер відкрийте командний рядок і перейдіть до C: \ Program Files \ Java \ jdk1.6.0_39 \ bin> (або будь-яка встановлена ​​версія jdk).

Введіть keytool -list -v -keystore та вставте свій шлях зберігання ключів (наприклад, C: \ програмні файли \ Java \ jdk1.6.0_39 \ bin> keytool -list -v -keystore "E: \ Мої проекти \ Android \ android студія \ підписані apks \ Hello World \ HelloWorld.jks ").

Тепер він запитає пароль зберігання ключів, надасть свій пароль і натисніть Enter, щоб отримати ваші ключі сертифікатів SHA1 та MD5.

Тепер додайте цей ключ SHA1 на консоль розробників google на вкладці облікових даних, а також змініть варіанти збирання в андроїд-студії в режим випуску.


не вдається ввести пароль зберігання ключів, але пароль не набраний у командному рядку
Mahendra Dabi

пароль не видно, просто введіть свій пароль правильно і натисніть клавішу, ви отримаєте свої ключі
Rishab Jain

дякую, я ввів неправильний пароль, зараз це працює. дякую, хлопці
Mahendra Dabi

1

Для тих, хто на Mac шукає keytool. виконайте наступні кроки:

По-перше, переконайтесь, що встановити Java JDK http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html

Потім введіть це в командний рядок:

/usr/libexec/java_home -v 1.7

він випльовує щось на кшталт:

/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home

keytool розташований у тому самому каталозі, що і javac. тобто:

/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin

З каталогу bin ви можете використовувати keytool.


1

Якщо ви перебуваєте на Mac / Linux, ви можете отримати відбиток SHA1, записавши наступний рядок у терміналі:

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

Після цього можливі дві речі

  1. Він запитає вас про пароль

    Просто введіть

android

і натисніть клавішу Enter, ви можете знайти клавішу SHA1 у висновку, показаному нижче.

  1. Він попросить завантажити відповідну програму (і буде надано деякий список)

    Просто введіть наступний термінал

sudo apt встановити openjdk-8-jre-headless

а потім знову запустіть наступне в терміналі: keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

Цього разу вас перейдуть до кроку 1, де потрібно просто ввести пароль як

android

і ви отримаєте ваш відбиток SHA1 нижче у висновку.


0

Використання портек :

  • Файл> Відкрити файл зберігання ключів
  • Введіть пароль Keystore
  • Клацніть правою кнопкою миші ім’я псевдоніма> Деталі сертифіката> SHA-1 Fingerprint


0

Я хотів опублікувати повідомлення для тих, хто має те саме питання, що і я. Я пройшов кроки, щоб створити свою налагодження SHA-1 і свій реліз SHA-1. Я намагався підключити API входу в Google зі своїм додатком.

Я зіткнувся з проблемою, що налагодження .apk буде добре працювати, він підключатиметься та автентифікується із Google Sign-In. Мій випуск .apk також буде працювати при встановленні вручну на телефон. Коли я опублікував свій реліз .apk у магазині ігор Google, мій вхід у google не автентифікується, і я отримаю проблему!

Тривалий час я не міг цього зрозуміти, але виявив, що мій додаток підписується google, тобто повідомлення вгорі консолі розробника відображалося: для цього додатка ввімкнено підпис Google Play.

Я перейшов на вкладку «Менеджмент випусків», потім прокрутився до «Підписання додатків» і там знайшов SHA-1. Додавши це до свого коду та на "консолі firebase", яку я використовував як резервний пристрій для входу в Google, все, здавалося, працює. Схоже, мій магазин клавіш випуску замінили сертифікатом, підписаним google ... Я не дуже впевнений, чи так це відбувається, але це вирішило мою проблему і дозволило моєму випуску магазину Google Play apk правильно підтвердити автентифікацію зі знаком google в!


0

Покрокове рішення:

  1. Відкрийте командний рядок або Термінал для Mac
  2. Змініть каталог до каталогу розташування файлів keytool. Змініть каталог за допомогою команди cd <directory path>. (Примітка. Якщо у будь-якого імені каталогу є пробіл, тоді додайте \між двома словами. Приклад cd /Applications/Android\ Studio.app//Contents/jre/jdk/Contents/Home/bin/)

    • Щоб знайти місце вашого ключового інструменту, ви переходите до андроїд-студії. Відкрийте проект. І йти до

    • Файл> Структура проекту> Розташування SDK..і знайдіть JDK-місцезнаходження.

  3. Запустіть keytool за допомогою цієї команди: keytool -list -v –keystore <your jks file path>(Примітка: якщо в будь-якому імені каталогу є пробіл, тоді додайте \ між двома словами. Example keytool -list -v -keystore /Users/username/Desktop/tasmiah\ mobile/v3/jordanos.jks)

  4. Команда підкаже вам ввести пароль .. тому введіть свій пароль .. тоді ви отримаєте результат


0

Ось інструмент для ледачих кодерів:

1 додайте залежність:

compile 'com.vk:androidsdk:1.6.9'

2 додайте наступні рядки десь у своїй діяльності / програмі:

String[] fingerprints = VKUtil.getCertificateFingerprint(this, getPackageName()); 
Log.d("SHA1", fingerprints[0]);

3 Відкрийте лог-кот та повідомлення про ловлення.

4 Прибуток!


0
  1. Відкрийте командний рядок
  2. Перейдіть до робочого каталогу до 1.8.0 / bin
  3. пасти keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
  4. Натисніть клавішу Enter, якщо вона запитає пароль

0

Якщо ви хочете отримати ключ fingerprint-sha1 від підписання файлу keystore.jks, запустіть наступну команду з терміналу:

keytool -list -v -keystore <.../path/keystore.jks>

Приклад

keytool -list -v -keystore /Users/Home/Projects/Keystore/myApp_keystore.jks
Enter keystore password: 

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

Alias name:myApp_alias
Owner: CN=xxx, OU=xxx Dev, O=ZZZ, L=Dhaka, ST=Dhaka, C=BD
..........


Certificate fingerprints:
MD5:  12:10:11:12:11:11:11:11:11:11:33:11:11:11:11:11
SHA1: 11:44:11:11:55:11:17:11:11:66:11:11:88:11:11:77:11:11:01:11
.....................

0

Клацніть Gradle в правій частині меню, потім натисніть на: додаток, потім натисніть папку android, тоді SigningReport ім'я файлу існує. Двічі клацніть на цьому. Він почне виконуватись і через деякий час покаже вам код SHA-1 Просто скопіюйте код. І вставте його там, де вам потрібно

Звіт про підписання, виділений на зображенні

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.