안드로이드 keyHash 얻는 방법

하태현·2021년 3월 17일
0

카카오 소셜로그인 구현중 자꾸 에러가 뜬다.
Error: invalid android_key_hash or ios_bundle_id or web_site_url
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64
위 코드를 이용해서 키해시를 추출해내면 정확한 키해시가 아닐 수 있다고 한다.

<MainActivity.java> 파일에 아래의 코드를 추가해준다.

public class MainActivity extends ReactActivity {
...
@Override
  public void onCreate(Bundle bundle) {
    super.onCreate(null);
    Log.d("keyHash", ""+getKeyHash(MainActivity.this));
  }


  public static String getKeyHash(final Context context) {
    PackageManager pm = context.getPackageManager();
    try {
      PackageInfo packageInfo = pm.getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
      if (packageInfo == null)
        return null;

      for (Signature signature : packageInfo.signatures) {
        try {
          MessageDigest md = MessageDigest.getInstance("SHA");
          md.update(signature.toByteArray());
          return android.util.Base64.encodeToString(md.digest(), android.util.Base64.NO_WRAP);
        } catch (NoSuchAlgorithmException e) {
          e.printStackTrace();
        }
      }
    } catch (PackageManager.NameNotFoundException e) {
      e.printStackTrace();
    }
    return null;
  }
  ...
}
profile
왜?를 생각하며 개발하기, 다양한 프로젝트를 경험하는 것 또한 중요하지만 내가 사용하는 기술이 어떤 배경과 이유에서 만들어진 건지, 코드를 작성할 때에도 이게 최선의 방법인지를 끊임없이 질문하고 고민하자. 이 과정은 앞으로 개발자로 커리어를 쌓아 나갈 때 중요한 발판이 될 것이다.

0개의 댓글