본문 바로가기
IT

[안드로이드] 해시키(Hash Key) 알아내기

by MadebyAn 2021. 10. 16.
반응형

안녕하세요.

오늘은 프로젝트 해시키(Hash Key)를 안드로이드 스튜디오에서 알아내는 방법을 알아보겠습니다.

해시키(Hash Key)는 앱마다 갖는 고유 값으로 페이스북 SDK나 카카오톡 SDK등과 연동하기 위해서는 반드시 필요합니다. 해시키(Hash Key)를 가지고 각각의 앱을 구분하여 설정된 기능을 제공하기 때문에 필히 등록해야 합니다.

해시키(Hash Key)는 개발용 key와 릴리즈(release)용 key가 있는데, 개발용키는 개발할 때만 사용하는 키로 안드로이드 개발환경에 기본적으로 저장되어 있는 인증서 바이너리에 대한 해시값이고, 릴리즈용 키는 실제 앱을 배포할 때 사용하는 인증서 바이너리에 대한 해시값입니다.

실제로 제작후 배포할 때, 개발용 해시키(Hash Key)를 등록하게 되면 해당 해시키로 처리되는 모든 기능이 작동하지 않을 수 있기때문에 반드시 배포 전에 릴리즈용 키를 등록해야합니다. 

개발 및 테스트용으로 사용하는 기본적인 해시키(Hash Key)는 다음의 코드를 실행하여 콘솔에 출력 가능합니다.

import androidx.appcompat.app.AppCompatActivity;

import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        getHashKey();	// 해시키를 확인하는 클래스 호출
    }

    private void getHashKey() {
        PackageInfo packageInfo = null;
        try {
            packageInfo = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        if (packageInfo == null)
            Log.e("KeyHash", "KeyHash:null");

        for (Signature signature : packageInfo.signatures) {
            try {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                Log.e("KeyHash", Base64.encodeToString(md.digest(), Base64.DEFAULT));	// 해시키를 로그로 찍어서 확인
            } catch (NoSuchAlgorithmException e) {
                Log.e("KeyHash", "Unable to get MessageDigest. signature=" + signature, e);
            }
        }
    }
}

다음과 같은 코드를 이용하면 

Logcat에 설정해놓은 "KeyHash"로 검색하면 쉽게 확인할 수 있습니다.

 

반응형

댓글


loading