Android/기타 지식

openSSL로 Key Hash 구하기

jaesungLeee 2020. 8. 10. 17:37

Android Studio로 여러 API를 사용하려다 보면 해시 키를 요구하는 경우가 많다.

카카오 로그인 API의 경우 자체적으로 제공하는 getKeyHash( )를 통해 쉽게 해시 키를 구할 수 있고, 구글링을 해보면 해시 키를 구하는 code들을 많이 볼 수 있다.
Facebook 로그인 API의 경우, Facebook Developers에서 openSSL로 해시키를 구하는 방법을 제시한다.

소개하는 방법은 openSSL 라이브러리를 이용해 해시키를 구하는 방법이다.

 

1. openSSL 설치

아래의 URL로 들어가 자신의 운영체제 bit에 맞는 파일을 설치해준다.

https://code.google.com/archive/p/openssl-for-windows/downloads

 

Google Code Archive - Long-term storage for Google Code Project Hosting.

 

code.google.com

 

보통의 경우 64bit 운영체제를 사용하니 두번째 압축파일을 다운받으면 된다.

 

압축 해제 한 후 파일들의 경로를 C:\Program Files\Java로 해준다.

Java 디렉토리 안에 ssl 폴더를 만들어 안에 넣어준다.

 

bin 폴더 안에 openssl.exe가 있는지도 확인해 보자.

 

2. 시스템 환경 변수 설정

구글링을 해보면 여기까지 한 후 직접 커맨드를 입력해 해시 키를 구할 수 있다고 나온다.

(실제로 전에는 openssl 설치까지만 하고 커맨드를 입력해 보니 해시 키를 구할 수 있었다!!) 

 

cmd창에 커맨드를 입력해보면

'keytool'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.

라고 나온다.

시스템 환경 변수를 설정하지 않아서 수행하지 못하는 것인데, 방법은 간단하다.

keytool이 있는 경로를 환경 변수에 추가해 주면 된다.

 

jdk-14 하위 폴더인 bin 폴더에 keytool.exe가 있는 것을 확인했다.

 

Window 검색 창에 시스템 환경 변수 편집을 입력하고 

 

위 사진을 따라하면 된다. (keytool.exe가 있는 경로를 추가해 주면 끝)

 

3. cmd창에 커맨드 입력

cmd창에 아래 커맨드를 입력한다.

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\사용자 이름\.android\debug.keystore" | "openssl이 있는 경로\openssl" sha1 -binary | "openssl이 있는 경로\openssl" base64

 

커맨드를 입력하면 아래와 같이 Password를 묻는다.

 

default keystore password는 "changeit"이다.

 

password를 입력하면 해시키가 나온다!!

 

 

[참조]

https://discourse.igniterealtime.org/t/what-is-the-default-keystore-password/50238

 

What is the default keystore password?

I’m trying to install a custom CA and the keytool is prompting me for a password. How is that originally set. Thank you, -Noah

discourse.igniterealtime.org

https://m.blog.naver.com/PostView.nhn?blogId=justant&logNo=20197251822&proxyReferer=https:%2F%2Fwww.google.com%2F

 

Openssl 설치 및 Key Hash 얻기

Windows에서 Android Key Hash를 얻으려면 command창에 keytool -exportcert -alias androiddebugkey -...

blog.naver.com