Как получить сертификат подписи сертификата (SHA1) для OAuth 2.0 на Android?

154

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

Однако я не уверен, как получить отпечаток сертификата подписи (SHA1).

Сначала я использовал плагин Eclipse ADT для экспорта и создания хранилища ключей / ключа. Затем я попытался сделать, keytool -list keystore mykeystore.keystoreи он дает мне отпечаток сертификата MD5. Нужно ли мне повторить подпись (то есть я не могу использовать мастер экспорта eclipse)?

Могу ли я сначала использовать отладочный сертификат?

Alex
источник
Перед экспортом / загрузкой приложения используйте ответ пользователя user2453771. После экспорта / загрузки воспользуйтесь ответом Фредерика Ньюайи. Помните об этом и сэкономьте себе несколько часов боли.
SmulianJulian
как сгенерировать релиз apk keystore с использованием терминала linux
Manish
1
Самый простой способ получить SHA-1 для выпуска и отладки в режиме Android Studio Gradle. Проверьте это
Наим Ибрагим

Ответы:

174

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

Фредерик Нявая
источник
2
MD5 теперь появляется в logcat (не в окне при создании).
Инструмент
4
Сделайте процесс экспорта дважды. Это будет показано во втором повороте.
Кейби
Есть ли способ создать новый, используя этот метод? Я пытался сделать это, но мой старый файл хранилища ключей есть, но я думаю, что он неправильный (мне нужен отладочный сертификат, а не выпускной), плюс я забыл пароль. > _ <Спасибо, если у вас есть совет.
Azurespot
ПРИМЕЧАНИЕ. Вам не нужно полностью экспортировать .apk. Вы можете отменить на этом этапе после копирования SHA1, чтобы избежать создания ненужных .apks.
GraSim
139

Я знаю, что на этот вопрос был дан ответ, но именно так я нашел свою подпись для хранилища ключей по умолчанию. В Eclipse, если вы идете в Windows -> Настройки -> Android -> Сборка

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

Ник
источник
5
Это должен быть принятый ответ, так как это самый простой способ.
Мустафа
3
для хранилища ключей по умолчанию / отладки, а не для хранилища ключей производства
Фредерик Нявая
3
Ребята, обратите внимание, что безопасный ответ - @frederick nyawaya. Если у вашего приложения были разные хранилища ключей сборки и публикации (что в большинстве случаев имеет место, карта НЕ будет работать на ваших клиентах. И Бог знает, когда вы узнаете об этом, поскольку она отлично работает на вашем компьютере. Пожалуйста, будьте осторожны. Это легко, но вы, скорее всего, в конечном итоге будете иметь нерабочий картографический сервис на своих клиентских устройствах
Тина
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: \ Program Files \ Java \ jdk1.6.0_39 \ bin> keytool -list -v -keystore "E: \ Мои проекты \ Android \ android студия \ подписанные apks \ Hello World \ HelloWorld.jks ").
  6. Теперь он спросит пароль хранилища ключей , Enterукажите свой и нажмите, чтобы получить ключи сертификатов SHA1 и MD5.
Ravi
источник
файл хранилища ключей, созданный с помощью другой машины, могу ли я получить 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 все, нам нужны все эти детали ??
Прабс
Спасибо. Только это самый простой способ.
Сайка
Вы на самом деле спасли мой день. Благодаря тонну.
Каран
keytool -list -v -keystore my-release-key.keystore
Снежные базы
Хранилище ключей JKS использует собственный формат. Рекомендуется перейти на PKCS12, который является отраслевым стандартным форматом, используя "keytool -importkeystore -srckeystore <путь-использования-существующего-хранилища ключей> / <имя-варианта> .keystore -destkeystore <путь к хранилищу новых ключей> / < имя-варианта> .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. Ура, приятель!
Химадри Пант
Почему его спрашивают меня пароль
Абхиджит Чакра
я получил доступ запрещен!
Судхакар Пхад
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.

Gurkan
источник
40
keytool -list -v -keystore "keyStoreName"

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

Манмохан Сони
источник
Это можно использовать для получения SHA1 для вашего клиентского приложения, которое вы будете экспортировать и публиковать. Это, вероятно, отличается от того, что вы видите в eclipse, который является отладочным хранилищем ключей.
dannyhan12
29

В Android Studio выполните следующие действия:

  1. Выберите меню свойств Gradle в правой части IDE-студии Android.
  2. Разверните дерево задач.
  3. Нажмите на SigningReport. Вы можете увидеть свой SHA1 в нижней консоли.

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

Harunduet
источник
13

Посмотрите, если вы хотите использовать Google Mapв то время вам нужен MD5отпечаток пальца для генерацииapi kay для использования карты Google в вашем приложении 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+?), Перейдите в меню Build / Generateведенный 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
...

Удачи

user9869932
источник
12

Если кто-нибудь использует Android-студию ...

нажмите: Build> Generate Signed in 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

Что приведет к следующему выводу:

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

TaeKwonJoe
источник
4

Если вы используете Android Studio. Вам не нужно генерировать отпечаток SHA1, используя приглашение cmd. Вам просто нужно создать проект с активностью Карт по умолчанию в Android Studio. В проекте вы можете получить отпечаток в google_maps_api.xml в папке «Значения». Надеюсь, что это поможет вам. :)

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

Порас Бхардвадж
источник
4

Вот мое простое решение для этого:

Нажмите на Gradle кнопку, вы можете найти на правой стороне сверху. Вы увидите все файлы Gradle. Теперь перейдите на Android, и дважды щелкните по подписи отчета. Как только сборка завершится, вы увидите ключ SHA. Проверьте ниже изображения для пошагового руководства.

Как только вы нажмете на Gradle, проверьте изображения ниже. Надеюсь, это кому-нибудь поможет.

ШАГ 1:

Изображение Шаг первый

ШАГ 2:

Изображение Шаг второй

basavaraj_S
источник
3

Если вы используете Android Studio. Вы можете быстро получить отпечаток сертификата SHA1 (отладка, выпуск ... все типы сборки !!) через Gradle Tasks :

signingReport

SHA1 отображается в журнале сообщений

Плагин Android (настроенный в приложении Gradle) по умолчанию создает режим отладки.

com.android.application

Маршрут файла к хранилищу ключей:

HOME / .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)

SergioLucas
источник
3

Попробуйте это: Windows ---- настройки ---- Android - сборка --- sh1 скопируйте код отсюда

Равинд Маурья
источник
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

В результате вы должны получить что-то вроде этого: введите описание изображения здесь

Choletski
источник
2

Я думаю, что это будет работать отлично. Я использовал то же самое:

Для Android Studio:

Нажмите «Построить»> «Создать подписанный APK». Вы получите окно сообщения, просто нажмите ОК.

Теперь появится другое окно, просто скопируйте Key Store Path.

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

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

Теперь он спросит пароль хранилища ключей, укажите свой и нажмите Enter, чтобы получить ключи сертификатов SHA1 и MD5.

Теперь добавьте этот ключ SHA1 в консоль разработчиков Google на вкладке учетных данных, а также измените варианты сборки в Android Studio на режим выпуска.

Ришаб Джайн
источник
я не могу ввести пароль хранилища ключей, который я ввожу, но пароль не введен в командной строке
Махендра Даби
пароль не виден, просто введите правильный пароль и нажмите Enter, вы получите ключи
Rishab Jain
спасибо, я ввел неправильный пароль, теперь это работа, спасибо, ребята
Махендра Даби,
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.

wired00
источник
1

Если вы работаете в Mac / Linux, вы можете получить отпечаток SHA1, написав следующую строку в терминале:

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

После этого возможны 2 вещи

  1. Он спросит у вас пароль

    Просто введите

андроид

и нажмите ввод, вы можете найти ключ SHA1 в выводе, показанном ниже.

  1. Вам будет предложено загрузить подходящую программу (и будет дан некоторый список)

    Просто введите следующий в терминале

sudo apt install openjdk-8-jre-headless

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

На этот раз вы попадете на шаг 1, где вам нужно просто ввести пароль как

андроид

и вы получите свой отпечаток SHA1 ниже на выходе.

Акшай Чопра
источник
0

Используя portecle :

  • Файл> Открыть файл хранилища ключей
  • Введите пароль хранилища ключей
  • Щелкните правой кнопкой мыши по псевдониму> Сведения о сертификате> Отпечаток SHA-1
Радий
источник
0

Самый простой способ получить SHA-1 для выпуска и отладки в режиме Android Studio Gradle. Проверь это

Наим Ибрагим
источник
0

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

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

Долгое время я не мог этого понять, но обнаружил, что мое приложение было подписано Google, т. Е. В верхней части консоли разработчика отображалось сообщение: для этого приложения включена подпись приложения Google Play.

Я перешел на свою вкладку «Управление релизами», затем прокрутил вниз до «Подписание приложения» и нашел там SHA-1. После добавления этого в мой код и на «консоли Firebase», которую я использовал в качестве бэкэнда для входа в Google, все, казалось, работало. Похоже, что мое хранилище ключей релиза было заменено подписанным сертификатом Google ... Я не совсем уверен, что это то, что происходило, но это решило мою проблему и позволило моему apk релизу Google Play Store правильно аутентифицироваться со знаком Google в!

Brandon
источник
0

Пошаговое решение:

  1. Откройте командную строку или терминал для Mac
  2. Перейдите в каталог, где находится файл keytool. Изменить каталог с помощью команды cd <directory path>. (Примечание: если какое-либо имя каталога имеет пробел, добавьте \между двумя словами. Пример cd /Applications/Android\ Studio.app//Contents/jre/jdk/Contents/Home/bin/)

    • Чтобы найти местоположение вашего инструмента для ключей, вы идете в android studio .. откройте свой проект. И перейти к

    • Файл> Структура проекта> Местоположение SDK .. и найдите местоположение JDK.

  3. Запустите keytool с помощью этой команды: keytool -list -v –keystore <your jks file path>(Примечание: если в имени какого-либо каталога есть пробел, добавьте \ между двумя словами. Пример 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 Откройте logcat и поймайте сообщение.

4 Прибыль!

Александр
источник
0
  1. Откройте командную строку
  2. Перейдите в рабочий каталог к ​​1.8.0 / bin
  3. вставить keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
  4. Нажмите ввод, если он спросит вас пароль
Сандун Самера
источник
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
.....................
Samsul
источник
0

Пожалуйста, нажмите на Gradle в правой части меню, затем нажмите: приложение, затем нажмите папку Android, затем существует имя файла SigningReport. Дважды щелкните по нему. Он начнет выполняться и через некоторое время покажет вам код SHA-1. Просто скопируйте код. И вставьте его туда, где вам нужно

Отчет о подписи выделен на изображении

Uzair
источник