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#키해시-등록
해당 링크에 키해시에 대한 설명이 되어있지만 생소한 부분이다보니 시작부터 막히시는 분들이 많을거에요
제 개발환경은 현재 윈도우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
저는 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
//-----------------------------------------------------------------------------------------------------------------------------
안드로이드 스튜디오에서 확인하기
안드로이드 디버그 서명 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' 카테고리의 다른 글
Android 공유하기 - 네이버 관련 (0) | 2021.01.14 |
---|---|
Android kakao link (카카오 링크) 코드 (0) | 2021.01.13 |
Android SNS 공유하기 - 스크랩 (0) | 2021.01.12 |
(시간 동기화 관련)날자 형식 -> 밀리세컨드 로 변환 (0) | 2020.12.08 |
android status bar 숨기기 (0) | 2020.11.30 |