[안드로이드 스튜디오 kotlin] 해시키 구하기

ideal dev·2023년 2월 1일
0
  1. 안드로이드 스튜디오 터미널에 아래 코드 입력
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64

아래 그림과 같이 터미널 창에 노란줄 부분에 해시키 값이 나옵니다!

  1. 처음 시작하는 메인 액티비티 onCreate 에 아래 코드 추가
    (Utility 는 카카오 SDK 에서 제공하는 기능으로 gradle 에 구현된 상태에서만 가능 )
    로그캣에서 확인 가능
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(binding.root)
        
		Log.d(TAG, "keyhash : ${Utility.getKeyHash(this)}")
    }

해시키가 필요한 이유

외부 API를 사용하는 경우 일반적으로 Key Hash 값을 통해 사용자를 인증합니다.
예를 들어 오픈 API (카카오 로그인, FCM, FaceBook 로그인 등 ) 을 사용하려면 해시키를 등록해야 하고, Key Hash가 등록된 앱만 SDK를 이용해 API 를 호출할 수 있습니다.

해쉬키란?

키 해시는 특정 데이터를 해시 함수에 입력한 결과로 받은 리턴값을 말합니다.

해시 함수란?

  • 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수
    • 해시 함수에 의해 얻어지는 값은 해시 값, 해시 코드, 해시 체크섬 (간단하게 해시 )
  • 데이터의 길이가 랜덤해도 리턴값이 길이는 일정합니다.
  • 입력값이 같으면 리턴값도 언제나 동일합니다.
  • 이러한 함수의 출력값만으로 입력값을 추론하는 것이 어렵다는 특징으로 암호화된 key 값이라는 개념으로 보안인증에 사용되곤 합니다.

Key Hash의 활용

  • 민감한 정보일 수도 있는 앱의 signing key값이 아닌 그 값을 해시한(SHA-1 함수를 통해) hasy key 를 통해 인증된 사용자인 지 여부를 판단
  • 해시를 통한 사용자 인증의 장점은 해시값이 노출되어도 피해가 전혀 없다는 것 !
    • 해시값만 가지고는 원본 데이터를 추론할 수 없기 때문

왜 API Provider 는 해시가 등록된 앱에 대해서면 허용 !?

  • 무분별한 트래픽을 방지하기 위하여

아하~ 이래서 해시키값을 입력하라고 하는거구나!

참고
https://manorgass.tistory.com/76

0개의 댓글