반응형
이번 글에선 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를 사용해주면 된다.
반응형
'안드로이드 > 개발관련(Kotlin)' 카테고리의 다른 글
안드로이드 AlarmManager로 정해진 시간에 작업 수행(Kotlin) (0) | 2023.02.27 |
---|---|
안드로이드에서 공용키 암호화(RSA) 사용하기(Kotlin) (0) | 2023.02.27 |
안드로이드에서 X.509 인증서, CRL 사용하기 (0) | 2023.02.27 |
라이브러리 목록 (0) | 2022.09.01 |
안드로이드 권한(Permisson) 요청 (0) | 2022.02.08 |