">


  페이스북SDK, 카카오톡SDK 등에서 간편 로그인을 등을 사용하기 위해서 반드시 앱에 대한 해시키(Hash key)를 등록해야 합니다. 해시키는 안드로이드 개발 환경에서 가지고 있는 인증서 바이너리에 대한 해시값으로 쉽게 앱 고유의 키 값이라고 생각하면 됩니다. 앱 고유의 값을 사용하기 위해 페이스북이나, 카톡에서 앱의 해시값을 필요로 하는 겁니다. 


  해시키는 개발용 key와 릴리즈용 key로 구분되며 개발용은 개발할 때만 사용하는 키로 본인의 안드로이드 개발 환경에 기본적으로 저장되어 있는 인증서 바이너리에 대한 해시값입니다.

릴리즈용 key는 실제 앱을 배포할 때 사용한 인증서 바이너리에 대한 해시 값입니다. 

카톡이나 페이스북에 사용자 포럼에 가면 배포용은 되는데 릴리즈용은 안된다는 분들이 있습니다. 해시키를 배포용으로 변경하지 않아서 그렇겠죠?


  개발환경이 다른 경우가 많아서 개발 시 해시키를 가져오는 건 코드 상에서 가져오는게 가장 정확한 것 같습니다. 

아래는 그 코드 입니다. 

@Override
 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_facebook_hash_key);
     try {
            PackageInfo info = getPackageManager().getPackageInfo("your.package.name", PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
        } catch (NameNotFoundException e) {
         e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
         e.printStackTrace();
        }
    }
}



+ Recent posts