안드로이드/개발관련(Kotlin)

안드로이드 Sha256 Hash화

닉네임못짓는사람 2023. 2. 27. 20:04
반응형

이번 글에선 Sha256알고리즘을 사용해 메시지의 Hash값을 구하는 법에 대해 알아보도록 하자.

fun getSign(input: String): String{
        val hash: ByteArray
        try{
            val md = MessageDigest.getInstance("SHA-256")
            md.update(input.toByteArray())
            hash = md.digest()
        }catch (e: CloneNotSupportedException){
            throw DigestException("couldn't make digest of patial content")
        }
        return Base64Utils.encode(hash)
    }

Hash화는 매우 간단하게 짧은 코드로 끝낼 수 있다.

먼저 ByteArray변수인 hash를 선언해준다. 이곳에 hash값이 들어가게된다.

다음은 MessageDigest객체인 md를 선언해주는데 이때 getInstance에 우리가 사용할 hash알고리즘이 들어간다.

우리는 Sha256을 사용한다고 했으니 SHA-256이라고 넣어주자.

 

다음은 md.update에 ByteArray를 넣어줘야 하는데, 여기에 들어가는게 우리가 Hash값을 구할 원본 메시지다.

함수에 들어오는 input변수를 여기에 넣어서 hash값을 구해주자.

 

마지막으로 hash변수에 md.digest()로 Hash값을 넣어주면 끝이난다.

hash는 ByteArray이기 때문에 이 값을 문자열로 보고싶으면 Base64Utils.encode를 사용해주면 된다.

반응형