openSSL로 Key Hash 구하기
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
압축 해제 한 후 파일들의 경로를 C:\Program Files\Java로 해준다.
Java 디렉토리 안에 ssl 폴더를 만들어 안에 넣어준다.
2. 시스템 환경 변수 설정
구글링을 해보면 여기까지 한 후 직접 커맨드를 입력해 해시 키를 구할 수 있다고 나온다.
(실제로 전에는 openssl 설치까지만 하고 커맨드를 입력해 보니 해시 키를 구할 수 있었다!!)
cmd창에 커맨드를 입력해보면
'keytool'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.
라고 나온다.
시스템 환경 변수를 설정하지 않아서 수행하지 못하는 것인데, 방법은 간단하다.
keytool이 있는 경로를 환경 변수에 추가해 주면 된다.
jdk-14 하위 폴더인 bin 폴더에 keytool.exe가 있는 것을 확인했다.
Window 검색 창에 시스템 환경 변수 편집을 입력하고
3. cmd창에 커맨드 입력
cmd창에 아래 커맨드를 입력한다.
keytool -exportcert -alias androiddebugkey -keystore "C:\Users\사용자 이름\.android\debug.keystore" | "openssl이 있는 경로\openssl" sha1 -binary | "openssl이 있는 경로\openssl" base64
커맨드를 입력하면 아래와 같이 Password를 묻는다.
password를 입력하면 해시키가 나온다!!
[참조]
https://discourse.igniterealtime.org/t/what-is-the-default-keystore-password/50238