Notice
Recent Posts
Recent Comments
Link
투케이2K
28. (AndroidStudio/android/java) 로컬, 구글 플레이스토어 등록된 sha1 인증서 해시 키 (hash key) 값 얻기 본문
Android
28. (AndroidStudio/android/java) 로컬, 구글 플레이스토어 등록된 sha1 인증서 해시 키 (hash key) 값 얻기
투케이2K 2021. 1. 28. 08:53/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : AndroidStudio
개발 언어 : java
/* =========================== */
/* =========================== */
[소스 코드]
//================================= [키해시 값 알아오는 메소드] =================================
public String getHashKeyData(Context context){
/**[키 해시 설명]
* 1. 해시 함수(hash function)는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑합니다
* 2. 키 해시는 특정 데이터(data)를 해시 함수(hash function)에 입력한 결과로 받은 리턴값을 말합니다
* 3. 사용 이유 - 카카오, 구글 등 API 호출 시 hash key를 통해 인증된 사용자인지 여부를 판단합니다
* */
try {
//TODO ====== [로컬 sha1 인증서 HashKey 얻기] ======
String value_one = "";
PackageInfo info = context.getPackageManager().getPackageInfo(String.valueOf(getPackageName()), PackageManager.GET_SIGNATURES);
//PackageInfo info = context.getPackageManager().getPackageInfo(String.valueOf(getClass().getPackage().getName().trim()), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
value_one = Base64.encodeToString(md.digest(), Base64.DEFAULT);
}
//TODO ====== [구글 플레이 스토어 등록 sha1 인증서 HashKey 얻기] ======
byte[] sha1 = { (byte)0x1E, (byte)0xBE, (byte)0x45, (byte)0x66, (byte) 0x7A, (byte) 0x25, (byte) 0x8C, (byte) 0xFC, (byte) 0x9F, (byte) 0x44, (byte) 0xA4, (byte) 0x8F,
(byte)0xB7, (byte)0x37, (byte)0xE8, (byte)0x79, (byte)0x88, (byte)0xEC, (byte)0x16, (byte)0x8F, };
String value_two = "";
value_two = Base64.encodeToString(sha1, Base64.NO_WRAP);
//TODO ====== [추출한 HashKey 결과 출력 실시] ======
Log.d("---","---");
Log.d("//===========//","================================================");
Log.d("","\n"+"[getHashKeyData() 메소드 > HashKey 값 확인 실시]");
Log.d("","\n"+"[패키지 명 : "+String.valueOf(getPackageName())+"]");
Log.d("","\n"+"[로컬 HashKey : "+String.valueOf(value_one)+"");
Log.d("","\n"+"[플레이 스토어 등록 HashKey : "+String.valueOf(value_two)+"");
Log.d("//===========//","================================================");
Log.d("---","---");
return value_one; //TODO [로컬 HashKey 반환]
//return value_two; //TODO [플레이 스토어 등록 HashKey 반환]
}
catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}
/* =========================== */
[결과 출력]
/* =========================== */
/* =========================== */
[요약 설명]
* 1. 해시 함수(hash function)는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑합니다
* 2. 키 해시는 특정 데이터(data)를 해시 함수(hash function)에 입력한 결과로 받은 리턴값을 말합니다
* 3. 사용 이유 - 카카오, 구글 등 API 호출 시 hash key를 통해 인증된 사용자인지 여부를 판단합니다
/* =========================== */
반응형
'Android' 카테고리의 다른 글
Comments