개빡치는 안드로이드

안드로이드 : 디버그(Debug) 해쉬 키 찾는 법

제주도 조랑말 2024. 4. 15. 10:30
728x90

1. openssl 다운로드 후 cmd를 이용한 방법
장점 : 빠르다

단점 : openssl 버전이나 상황에 따라 값이 옳지 않게 나올 때가 있다.

 

1-1) 디버그 해쉬 값 구하기

keytool -exportcert -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64

 

1-2) 릴리즈 해쉬 값 구하기
keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | PATH_TO_OPENSSL_LIBRARY\bin\openssl base64

 

그래서 사용한 방법

2. kotlin으로 hash값 구하기

MainActivity.kt

import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import android.os.Bundle
import android.util.Base64
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import java.security.MessageDigest
import java.security.NoSuchAlgorithmException

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        printHashKey()
    }

    private fun printHashKey() {
        try {
            val info: PackageInfo = packageManager.getPackageInfo(
                packageName,
                PackageManager.GET_SIGNATURES
            )
            for (signature in info.signatures) {
                val md: MessageDigest = MessageDigest.getInstance("SHA")
                md.update(signature.toByteArray())
                val hashKey: String = Base64.encodeToString(md.digest(), Base64.NO_WRAP)
                Log.i("TAG", "printHashKey() Hash Key: $hashKey")
            }
        } catch (e: NoSuchAlgorithmException) {
            Log.e("TAG", "printHashKey()", e)
        } catch (e: Exception) {
            Log.e("TAG", "printHashKey()", e)
        }
    }
}
728x90