본문 바로가기

프로그래밍/안드로이드[Android]

[안드로이드] 해시키 Hash Key 가져오기



안녕하세요 오늘은 안드로이드에서 해시키를 구하는 방법을 알려드리고자 합니다.

 

우선 해시키는 앱마다 가지고 있는 고유키로 카카오톡, 페이스북 등의 SDK와 연동하기 위해서는

 

해시키(Hash Key)를 가지고 각각의 앱을 구분하기 때문에 해시키(Hash 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("HashKey", "HashKey:null");

        for (Signature signature : packageInfo.signatures) {
            try {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                Log.d("HashKey", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            } catch (NoSuchAlgorithmException e) {
                Log.e("HashKey", "HashKey Error. signature=" + signature, e);
            }
        }
    }

 

그리고 onCreate 부분에서 위에 작성한 함수를 호출합니다.

 

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_Main);
        
        //함수 호출
        getHashKey();
    }

 

 

혹시나 초보자 분들을 위해서 전체 코드를 올려드립니다.

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("HashKey", "HashKey:null");

        for (Signature signature : packageInfo.signatures) {
            try {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                Log.d("HashKey", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            } catch (NoSuchAlgorithmException e) {
                Log.e("HashKey", "HashKey Error. signature=" + signature, e);
            }
        }
    }
}

 

 

자 그리고 실행을 하면 Logcat에서 "HashKey" 키워드로 찾으면 됩니다.

이렇게 해서 마무리 짓도록 하겠습니다

 

감사합니다.