본문 바로가기
안드로이드 자바

[Java][Android] 키 해시(Key Hash) 추출 방법

by teamnova 2025. 1. 23.
728x90

안녕하세요.

오늘은 키 해시(Key Hash) 추출 방법에 대해서 알아보도록 하겠습니다.

 

앱 개발 과정에서 Facebook 로그인이나 Kakao 로그인과 같은 소셜 로그인 기능을 구현하거나, 특정 타사 SDK와의 연동이 필요할 때 키 해시(Key Hash)를 요구받는 경우가 있습니다. 키 해시는 앱의 서명 키를 검증하여 API 요청의 신뢰성을 보장하는 역할을 합니다.

 

키 해시는 Android 앱의 서명 키를 기반으로 생성된 값으로, Facebook이나 Kakao와 같은 외부 API 서비스가 앱의 진위를 확인하는 데 사용됩니다. 등록된 키 해시만 신뢰할 수 있는 요청으로 간주되며, 키 해시가 올바르지 않으면 API 호출이 실패하거나 기능이 동작하지 않습니다.

 

이번에는 코드로 키 해시를 추출하는 방법을 사용해보도록 하겠습니다.

 

우선 전체 코드입니다

 

MainActivity.java

public class MainActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getKeyHash();

  }

  private void getKeyHash() {
    try {
      PackageInfo info = getPackageManager().getPackageInfo(
          getPackageName(),
          PackageManager.GET_SIGNATURES);
      for (Signature signature : info.signatures) {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        String keyHash = Base64.encodeToString(md.digest(), Base64.DEFAULT);
        Log.d("KeyHash", "KeyHash: " + keyHash);
      }
    } catch (Exception e) {
      Log.e("KeyHash", "키 해시를 가져오는데 실패했습니다.", e);
    }
  }
}

 

 

코드를 작성 한 후, 실행하면 아래와같이 로그캣에서 키해시를 확인할 수 있습니다.

 

해당 키 해시값을 활용해서 API 연동 등록 등 다양하게 활용 할 수 있습니다.