안녕하세요
APK 변조방지를 위해서
키사인된 해시키 대응 방법을 적용하려고 합니다.
private void getHashKey(){
PackageInfo packageInfo = null;
try {
packageInfo = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
Log.e("KeyHash", ""+ packageInfo);
if (packageInfo == null)
Log.e("KeyHash", "KeyHash:null");
AlertDialog.Builder alertDialogBuilderExit = new AlertDialog.Builder(this);
for (Signature signature : packageInfo.signatures) {
try {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash",md.digest() + "");
Log.d("KeyHash", Base64.encodeToString(md.digest(), Base64.DEFAULT));
alertDialogBuilderExit.setMessage(Base64.encodeToString(md.digest(),Base64.NO_WRAP)).setCancelable(false)
.setPositiveButton("종료", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
MainActivity.this.finish();
}
});
} catch (NoSuchAlgorithmException e) {
Log.e("KeyHash", "Unable to get MessageDigest. signature=" + signature, e);
Toast.makeText(getApplicationContext(),"Unable to get MessageDigest. signature=" + signature,Toast.LENGTH_LONG).show();
}
}
AlertDialog dialog = alertDialogBuilderExit.create();
dialog.show();
}
해당 메소드를 이용하고 릴리즈용 해시키로 APK 파일을 만들고 alert 하였는데 계속
디버그용 해시키가 출력됩니다.
릴리즈용 해시키를 출력하는 방법이 있을까요?