코딩스토리

[Android/안드로이드] 해시키(Hash key) 가져오는 방법 본문

Android/유용한 기술

[Android/안드로이드] 해시키(Hash key) 가져오는 방법

라크라꾸 2019. 12. 16. 21:27

해시키는 앱마다 가지고 있는 고유키입니다.

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

 

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

 

실제 앱스토어에 앱을 올리는 경우개발용 해시키를 등록하는 경우 해당 해시키로 처리되는 모든 기능이 되지 않을 수 있기 때문에 배포를 하기 전 반드시 릴리즈용 키를 등록해야합니다. 

 

해시키(Hash key) 구하기

 


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.d("KeyHash", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            } catch (NoSuchAlgorithmException e) {
                Log.e("KeyHash", "Unable to get MessageDigest. signature=" + signature, e);
            }
        }
    }
    

 

이제 onCreate에 getHashKey();를 호출해 줍니다.

 

 

Logcat에 KeyHash로 필터로 뜨는 값을 확인하면 해시키(Hash key)를 가져올 수 있습니다.

 

 

Comments