ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Android] HashKey 구하기
    프로그래밍/Android 2018. 1. 16. 16:23

    HashKey 구하기

    키 해시를 구하는 방법은 여러가지가 있겠지만, 저는 프로젝트에서 코드를 이용하여 구하는 방법이 가장 쉽고 정확하다고 생각합니다.


    MainActivity.java



    package rebuild.com.hashkey;


    import android.content.Context;

    import android.content.pm.PackageInfo;

    import android.content.pm.PackageManager;

    import android.content.pm.Signature;

    import android.support.annotation.Nullable;

    import android.support.v7.app.AppCompatActivity;

    import android.os.Bundle;

    import android.util.Base64;

    import android.util.Log;


    import java.security.MessageDigest;


    public class Mainctivity extends AppCompatActivity {

        private Context mContext;


        @Override

        protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_main);

            mContext = getApplicationContext();


            getHashKey(mContext);

        }


        // 프로젝트의 해시키를 반환

        @Nullable

        public static String getHashKey(Context context) {

            final String TAG = "KeyHash";

            String keyHash = null;

            try {

                PackageInfo info = 

    context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);


                for (Signature signature : info.signatures) {

                    MessageDigest md;

                    md = MessageDigest.getInstance("SHA");

                    md.update(signature.toByteArray());

                    keyHash = new String(Base64.encode(md.digest(), 0));

                    Log.d(TAG, keyHash);

                }

            } catch (Exception e) {

                Log.e("name not found", e.toString());

            }


            if (keyHash != null) {

                return keyHash;

            } else {

                return null;

            }

        }

    }


    메서드를 추가하신 후에, 실행을 시키면 로그를 통해 키 해시 값을 얻을 수 있습니다. 주의 하실 점은 디버그용과 릴리즈용 키 해시 값은 다르니, 차후, 실제 서비스시에는 릴리즈용 키해시 값도 등록을 해주어야 합니다.

Designed by Tistory.