Android/Develop
[Android] HashKey 구하기
hyun's life_developer
2019. 10. 16. 23:01
안녕하세요 초보개발자 시아아빠입니다.
HashKey 구하는 법을 간단히 소개하겠습니다.
다음은 프로젝트에서 구현하여 HashKey를 알아내는 법 입니다.
> 해쉬키 구하는 코드입니다. (아무 프로젝트에서나 만들어서 실행하면 되구요 모든 프로젝트 동일합니다.)
package com.siadday.패키지명;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
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.d("KeyHash", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
catch (NoSuchAlgorithmException e)
{
Log.e("KeyHash", "Unable to get MessageDigest. signature=" + signature, e);
}
}
}
}
이렇게 실행 후 Logcat에서 keyhash를 검색하여 찾습니다.
여기서 주의할 점은 디버그용과 릴리즈용 HashKey값이 다르므로,
실제 서비스시에는 릴리즈용 키해시 값도 등록을 해주셔야합니다.