Android

키해시 구하기

Machine_웅 2021. 1. 12. 15:30
728x90
반응형
     try {
            PackageInfo info = getPackageManager().getPackageInfo("your.package.name", PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                Log.e("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
        } catch (NameNotFoundException e) {
         e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
         e.printStackTrace();
        }
    }

 

 

참고

카카오 API를 사용하기 위해서는 키 해시를 등록해줘야되는데 디버그 모드에서는 디버그 키해시, 릴리즈 모드에서는 릴리즈 키해시를 각각 따로 등록을 해주어야됩니다.

처음 접하시는 분들은 이게 뭔소린지... 하실겁니다.

저도 삽질을 많이 했기에 이번 기회에 정리를 해보았습니다.

 

https://developers.kakao.com/docs/android/getting-started#키해시-등록

 

Kakao Developers_

더 나은 세상을 꿈꾸고 그것을 현실로 만드는 이를 위하여 카카오에서 앱 개발 플랫폼 서비스를 시작합니다.

developers.kakao.com

해당 링크에 키해시에 대한 설명이 되어있지만 생소한 부분이다보니 시작부터 막히시는 분들이 많을거에요

제 개발환경은 현재 윈도우10을 사용중이라 윈도우 환경 기준을 설명드리겠습니다.

윈도우는 커맨드창이나 안드로이드 터미널 창에서 진행해주시면 됩니다.

 

저는 안드로이드 스튜디오 터미널창에서 진행하겠습니다.

터미널탭으로 이동해 경로를 C:\Program Files\Android\Android Studio\jre\bin로 이동해주세요. 

cd C:\Program Files\Android\Android Studio\jre\bin

 

<debug_keystore_path>에는 디버그 스토어의 패스를 넣어주면 됩니다.

C:\Users\유저명\.android\debug.keystore를 넣어주면

keytool -exportcert -alias androiddebugkey -keystore C:\Users\유저명\.android\debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64

이렇게 넣어주면 되겠죠. 이 명령어를 커맨드창이나 터미널창에 입력해보면 

'openssl'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 라는 오류가 발생할겁니다.

 

이는 openssl이 설치되어있지 않기 때문에 openssl을 설치해 주셔야됩니다.

http://slproweb.com/products/Win32OpenSSL.html

 

Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions

Minimum system requirements: Windows XP or later 32MB RAM 200MHz CPU 30MB hard drive space Recommended system requirements: Windows XP or later 128MB RAM 500MHz CPU 50MB hard drive space September 13, 2018 - Visual Studio 2017 is being used for builds mean

slproweb.com

저는 1.1.0 Light버전을 다운받아서 사용했습니다.

다운 후 설치가 완료되면 C드라이브 밑에 OpenSSL-Win64라는 폴더가 생성되었을겁니다!!

(설치한 버전에따라 폴더명은 다를 수 있습니다.)

 

C:\OpenSSL-Win64\bin으로 들어가보면 openssl파일이 보일겁니다. 이 파일을 이용해서 키 해시를 생성해보겠습니다.

keytool -exportcert -alias androiddebugkey -keystore C:\Users\유저명\.android\debug.keystore -storepass android -keypass android | C:\OpenSSL-Win64\bin\openssl sha1 -binary | C:\OpenSSL-Win64\bin\openssl base64

이렇게 입력하면 디버그용 키 해시를 확인할 수 있습니다.

발급된 키는 내 애플리케이션 - 설정 - 일반 - 플랫폼 - Android - 키 해시에 등록해주면됩니다!!


다음으로 릴리즈 키 해시를 만들어 보겠습니다.

기본적인 방법은 디버그 키 해시와 비슷한데 먼저 릴리즈 키를 발급받으시고 따라오시면 되겠습니다.

<release_key_alias>에는 릴리즈 키의 별칭을 넣어주시면 됩니다. 저는 "test"로 입력하겠습니다.

그리고 <release_keystore_path>에는 릴리즈 키(jks파일)가 있는 경로를 넣어주시면 됩니다.

keytool -exportcert -alias "test" -keystore test.jks | C:\OpenSSL-Win64\bin\openssl sha1 -binary | C:\OpenSSL-Win64\bin\openssl base64

디버그키와 마찬가지로 터미널탭이나 커맨드창에서 C:\Program Files\Android\Android Studio\jre\bin 경로로 이동하여 명령어를 입력해주시면 됩니다. 

 

 

출처 : thisisspear.tistory.com/53

 

안드로이드 카카오 API 디버그 키, 릴리즈 키

카카오 API를 사용하기 위해서는 키 해시를 등록해줘야되는데 디버그 모드에서는 디버그 키해시, 릴리즈 모드에서는 릴리즈 키해시를 각각 따로 등록을 해주어야됩니다. 처음 접하시는 분들은

thisisspear.tistory.com

 

//-----------------------------------------------------------------------------------------------------------------------------

안드로이드 스튜디오에서 확인하기

안드로이드 디버그 서명 SHA-1, SHA-256 값 확인하기


안녕하세요. Fury 에요 :]

오늘은 안드로이드 디버그 서명에 대해서 알아볼게요.


파이어베이스(Firebase)를 이용하여 구글 인증을 할 경우,

디버그 서명 인증서 SHA-1 값을 넣어줘야 합니다.

 

지금부터 안드로이드 프로젝트의 SHA-1 값을 확인하는 방법을 알아보도록 하겠습니다.

(keytool을 이용하는 방법도 있지만 더 쉬운 방법을 알아보도록 하겠습니다)

 

 1. 안드로이드 Firebase 구글 인증을 위한 SHA-1 값 확인하기


먼저, Firebase에 추가된 프로젝트를 안드로이드 스튜디오로 켜줍니다.

 

그리고, 오른쪽 상단에 Gradle을 클릭합니다.

그러면 Gradle projects 화면이 뜹니다.

 

 

프로젝트 명 -> Tasks -> android -> signing Report를 더블 클릭합니다.

 

 

그러면 하단 창에 "4: Run" 탭을 보시면

Signing 한 결과를 확인하실 수 있습니다.

 

이 내용들 중에서 SHA1에 나타나 있는 값을 복사하여 붙여 넣어주시면 됩니다.

 

출처 : developer-fury.tistory.com/9 

 

[Android] 안드로이드 디버그 서명 SHA-1, SHA-256 값 확인하기

안드로이드 디버그 서명 SHA-1, SHA-256 값 확인하기 안녕하세요. Fury 에요 :] 오늘은 안드로이드 디버그 서명에 대해서 알아볼게요. 파이어베이스(Firebase)를 이용하여 구글 인증을 할 경우, 디버

developer-fury.tistory.com

 

728x90
반응형