Android에서 OAuth 2.0에 대한 서명 인증서 지문 (SHA1)을 얻는 방법은 무엇입니까?


154

나는의 단계에 따라 내 안드로이드 응용 프로그램 등록하기 위해 노력하고있어 https://developers.google.com/console/help/#installed_applications 따라 날 리드 http://developer.android.com/tools/publishing/app-을 signing.html .

그러나 서명 인증서 지문 (SHA1)을 얻는 방법을 잘 모르겠습니다.

먼저 Eclipse ADT 플러그인을 사용하여 키 저장소 / 키를 내보내고 작성했습니다. 그런 다음 시도해 keytool -list keystore mykeystore.keystore보니 MD5 인증서 지문이 나옵니다. 서명을 다시해야합니까 (이클립스 내보내기 마법사를 사용할 수 없음을 의미 함)?

디버그 인증서를 먼저 사용할 수 있습니까?


앱을 내보내거나 업로드하기 전에 user2453771의 답변을 사용하십시오. 내보내기 / 업로드 후 frederick nyawaya의 답변을 사용하십시오. 이를 기억하고 몇 시간의 고통을 구하십시오.
SmulianJulian

리눅스 터미널을 사용하여 릴리스 apk 키 저장소를 생성하는 방법
Manish

1
릴리스 및 디버그 모드 안드로이드 스튜디오 gradle에 SHA-1을 얻는 가장 쉬운 방법. 이것을 확인하십시오
Naeem Ibrahim

답변:


174

내보내기 프로세스를 시작하여 앱용 APK를 만들고 프로덕션 키를 사용하십시오. 마지막 페이지에는 SHA1 및 MD5 인증서 지문이 모두 표시됩니다여기에 이미지 설명을 입력하십시오


2
MD5가 지금 logcat에 나타납니다 (작성하는 동안 창에 없음).
도구

4
내보내기 프로세스를 두 번 수행하십시오. 두 번째 턴에 표시됩니다.
keybee

이 방법을 사용하여 새로운 것을 만드는 방법이 있습니까? 이 작업을 시도했지만 이전 키 저장소 파일이 있지만 잘못된 파일이라고 생각합니다 (릴리스 인증서가 아니라 디버그 인증서가 필요함). 암호를 잊어 버렸습니다. > _ <팁이 있으면 감사합니다.
Azurespot

참고 : .apk를 완전히 내보낼 필요는 없습니다. 불필요한 .apks가 생성되지 않도록 SHA1을 복사 한 후이 시점에서 취소 할 수 있습니다.
GraSim

139

이 질문에 대한 답변을 받았지만 이것이 기본 키 저장소에 대한 서명을 찾은 방법입니다. Eclipse에서 Windows-> 환경 설정-> Android-> 빌드로 이동하면

여기에 이미지 설명을 입력하십시오


5
가장 쉬운 방법이므로 이것이 정답입니다.
Mustafa

3
프로덕션 키 저장소가 아닌 기본 / 디버그 키 저장소의 경우
Frederick Nyawaya

3
안전한 답변은 @frederick nyawaya의 것입니다. 앱의 빌드 및 게시 키 스토어가 다른 경우 (대부분의 경우,지도는 클라이언트에서 작동하지 않으며, 자신의 컴퓨터에서 제대로 작동하므로이 정보를 언제 알 수 있는지 알고 있습니다. 이것은 쉽지만 클라이언트 장치에서 작동하지 않는 맵 서비스를 갖게 될 수 있습니다.
Tina

92

나는 이것이 완벽하게 작동 할 것이라고 생각합니다. 나는 같은 것을 사용했다 :

Android Studio의 경우 :

  1. 빌드 > 서명 된 APK 생성을 클릭하십시오 .
  2. 메시지 상자가 나타나면 확인을 클릭하십시오.
  3. 이제 키 저장소 경로를 복사하는 다른 창이 나타납니다 .
  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 : \ My Projects \ Android \ android studio \ signed apks \ Hello World \ HelloWorld.jks ").
  6. 이제 키 저장소 비밀번호 요청을 제공하고 키를 눌러 EnterSHA1 및 MD5 인증서 키를 얻습니다.

다른 기계를 통해 생성 된 키 저장소 파일 다른 machinge에 위의 절차와 동일한 키 저장소 파일로 sh1을 얻을 수 있습니까
Mahendra Dabi

대단히 감사합니다
Hiren

74

Mac 또는 Linux를 사용하는 경우이를 복사하여 터미널 응용 프로그램 에 붙여 넣으면 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, 어떤 암호를 모두 사용해야합니까?
Prabs

감사. 이것이 가장 쉬운 방법입니다.
Sayka

당신은 실제로 내 하루를 구했습니다. 정말 감사합니다.
Karan Nagpal

keytool -list -v -keystore my-release-key.keystore
스노우베이스

JKS 키 저장소는 독점 형식을 사용합니다. "keytool -importkeystore -srckeystore <use-existing-key-store path> / <variant-name> .keystore -destkeystore <new-key-store path> / <를 사용하여 산업 표준 형식 인 PKCS12로 마이그레이션하는 것이 좋습니다. variant-name> .keystore -deststoretype pkcs12 "입니다.
Arpit J.

68

이것을 커맨드 라인에서 사용하십시오

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

1
이것은 점점 더 많은 사람들이 IntelliJ / Studio로 마이그레이션하고 Eclipse / ADT의 손쉬운 접근성을 얻지 못함에 따라 가장 단순하면서도 표준적인 방법이라고 생각했습니다. 힘내 친구 야!!
Himadri Pant

비밀번호를 묻는 이유
Abhijit Chakra

액세스 권한이 거부되었습니다.!
sudhakar phad

59

열기 터미널 (에서 유닉스 에서 MAC ), ( cmd에서 윈도우 )와 cd이 (자바) 경로 :

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.keystoreMD5 및 SHA-1 지문이 모두 표시됩니다.


40
keytool -list -v -keystore "keyStoreName"

앱의 키 저장소가있는 디렉토리에서이 명령을 실행하십시오.


내보내고 게시 할 클라이언트 앱의 SHA1을 가져 오는 데 사용할 수 있습니다. 이것은 아마도 디버그 키 저장소 인 이클립스에서 보는 것과는 다를 수 있습니다.
dannyhan12

29

Android Studio에서 다음 단계를 수행하십시오.

  1. 안드로이드 스튜디오 IDE의 오른쪽에있는 Gradle properties 메뉴를 클릭하십시오.
  2. 작업 트리를 확장하십시오.
  3. signingReport를 클릭하십시오. 하단 콘솔에서 SHA1을 볼 수 있습니다

여기에 이미지 설명을 입력하십시오


13

Google Map그 시점에서 사용하려면 MD5생성에 지문 이 필요한지 확인하십시오.api kay 당신의 안드로이드 응용 프로그램에서 구글 맵을 사용 하기 위해 .

Keytool 명령은 MD5사용하면 지문 JDK 1.6을 생성하고 SHA1사용하면 지문 을 생성 합니다 JDK 1.7.

문제는 당신이 다음 게시 응용 프로그램을 서명 할 경우 읽을 수 있다는 것입니다 그래서 .

그리고 당신이 사용하려면 이것을google-map 읽으십시오 .


재생 Akshay 주셔서 감사합니다. 분명히 다른 인증서 지문을 표시하려면 keytool 명령에 -v를 추가해야했습니다. 또한 디버그 인증서를 사용하여 클라이언트 ID를 만들 수 있습니다.
Alex

1
대개. 클라이언트 ID 생성 문제를 해결했습니다. 그러나 나는 OAuth를 처음 사용하지만 인증서와 지문이 작동하는 방식이 아닙니다. 인증서에 MD5 및 SHA1 지문이 모두있을 수 있습니까? 적어도 내가 keytool -list -v etc명령을 할 때 얻는 것
Alex

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

안드로이드 스튜디오를 사용하는 사람이라면 ...

클릭 : 빌드> APK에서 서명 생성 새 키 생성 : ".jks"파일 생성

다음 명령을 사용하여 데이터 (SHA1 및 기타 정보)를 읽으십시오.

$ keytool -list -v -keystore 파일 이름 .jks


추가 팁 : 페이스 북을위한 키 해시 생성 명령$keytool -keystore filename.jks | openssl sha1 -binary | openssl base64
MuhFred

4

OpenSSL을 사용하는 사용자는 다음과 같이 SHA1 지문을 검색 할 수 있습니다.

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

결과는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오


4

Android Studio를 사용중인 경우 cmd 프롬프트를 사용하여 SHA1 지문을 생성 할 필요가 없습니다. Android Studio의 기본지도 활동을 사용하여 프로젝트를 만들어야합니다. 프로젝트에서 값 폴더 아래 google_maps_api.xml의 지문을 얻을 수 있습니다. 이것이 도움이되기를 바랍니다. :)

여기에 이미지 설명을 입력하십시오


4

이것에 대한 쉬운 해결책은 다음과 같습니다.

클릭 Gradle버튼을 하면 오른쪽 상단에서 찾을 수 있습니다. 모든 gradle 파일을 볼 수 있습니다. 이제 android로 가서 signingReport를 두 번 클릭하십시오. gradle 빌드가 완료되면 SHA 키가 표시됩니다. 단계별 가이드는 아래 이미지를 확인하십시오.

Gradle을 클릭하면 아래 이미지를 확인하십시오. 이것이 누군가를 돕기를 바랍니다.

1 단계:

이미지 1 단계

2 단계:

이미지 2 단계


3

Android Studio를 사용중인 경우 Gradle Tasks를 통해 SHA1 인증서 지문 (디버그, 릴리스 ... 모든 빌드 유형 !!)을 신속하게 얻을 수 있습니다 .

서명 보고서

SHA1이 메시지 로그에 표시됩니다

Android 플러그인 (gradle 앱에서 구성)은 기본적으로 디버그 모드를 만듭니다.

com.android.application

키 저장소로의 파일 경로 :

HOME / .android / debug.keystore

build.gradle에 debug.keystore를 연결하는 것이 좋습니다 . 이렇게하려면 파일 debug.keystore를 앱 폴더에 넣은 다음 gradle 앱에 SigningConfigs를 추가하십시오.

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 ---- 환경 설정 ---- Android--build --- 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

결과적으로 다음과 같은 것을 얻어야합니다. 여기에 이미지 설명을 입력하십시오


2

나는 이것이 완벽하게 작동 할 것이라고 생각합니다. 나는 같은 것을 사용했다 :

Android Studio의 경우 :

빌드> 서명 된 APK 생성을 클릭하십시오. 메시지 상자가 나타나면 확인을 클릭하십시오.

이제 키 저장소 경로를 복사하는 다른 창이 나타납니다.

이제 명령 프롬프트를 열고 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 : \ My Projects \ Android \ android studio \ signed apks \ Hello World \ HelloWorld.jks ").

이제 키 저장소 비밀번호를 묻고 비밀번호를 입력 한 후 Enter를 눌러 SHA1 및 MD5 인증서 키를 가져옵니다.

이제이 SHA1 키를 자격 증명 탭의 Google 개발자 콘솔에 추가하고 android studio의 빌드 변형을 릴리스 모드로 변경하십시오.


키 저장소 내가 입력 한 비밀번호하지만 암호를 입력 할 수없는 프롬프트 명령에 입력하지
마헨드라 다비

비밀번호가 보이지 않는 경우 비밀번호를 정확하게 입력하고 Enter 키를 누르면 키가 표시됩니다
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. 비밀번호를 묻습니다

    그냥 입력

기계적 인조 인간

Enter 키를 누르면 아래 표시된 출력에서 ​​SHA1 키를 찾을 수 있습니다.

  1. 적합한 프로그램을 다운로드하라는 메시지가 표시됩니다 (일부 목록이 제공됨)

    터미널에 다음을 입력하십시오.

sudo apt 설치 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 및 릴리스 SHA-1을 생성하는 단계를 거쳤습니다. Google 로그인 API를 내 앱과 연결하려고했습니다.

디버그 .apk가 제대로 작동하고 Google 로그인으로 연결하고 인증하는 문제가 발생했습니다. 전화기에 수동으로 설치하면 내 릴리스 .apk도 작동합니다. 릴리스 .apk를 Google Play 스토어에 게시하면 Google 로그인이 인증되지 않아 문제가 발생합니다.

오랫동안 알아낼 수 없었지만 내 앱이 Google에 의해 서명되고 있음을 발견했습니다. 즉, 개발자 콘솔 상단에 다음 메시지가 표시되었습니다. 이 앱에 Google Play 앱 서명이 사용 설정되었습니다.

릴리스 관리 탭으로 이동 한 다음 아래로 스크롤하여 앱 서명으로 이동하여 SHA-1을 찾았습니다. 이것을 내 코드와 Google 로그인 백엔드로 사용하는 "firebase 콘솔"에 추가 한 후 모든 것이 작동하는 것 같습니다. 내 릴리스 키 저장소가 Google 서명 인증서로 교체 된 것 같습니다 ...이 문제가 있는지 확실하지 않지만 문제를 해결하고 Google Play 스토어 릴리스 APK가 Google 서명으로 올바르게 인증되도록 허용했습니다 에!


0

단계별 솔루션 :

  1. 명령 프롬프트 또는 Mac 용 터미널을 엽니 다
  2. 디렉토리를 키 도구 파일 위치의 디렉토리로 변경하십시오. command를 사용하여 디렉토리를 변경하십시오 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. 암호를 물으면 Enter 키를 누르십시오

0

keystore.jks 파일 서명에서 지문 sha1 키를 얻으려면 터미널에서 다음 명령을 실행하십시오.

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을 클릭 한 다음 : app을 클릭 한 다음 android 폴더를 클릭하십시오 .SigningReport 파일 이름이 존재합니다. 더블 클릭하십시오. 실행이 시작되고 잠시 후에 SHA-1 코드가 표시됩니다. 코드를 복사하십시오. 필요한 곳에 붙여 넣기

이미지에서 강조 표시된 서명 보고서

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.