Android Kotlin : SHA-512 암호화 함수

2022. 9. 8. 09:09[Android APP] feat. Kotlin/Kotlin 공부

개요

개발 중 비밀번호를 웹으로 전송할 때 암호화를 해서 전송해달라고 요청이 왔다.

그래서 암호화하는 함수를 가져왔다.

 

단방향 해시 함수란?

수학적인 연산을 통해 원본 메시지를 암호화된 메시지인 다이제스트(digest)로 바꿔서 생성하는 함수이다.

원본을 알면 암호화된 메시지를 구할수 있지만, 반대인 암호화된 메시지로 원본 메시지를 구할 수 없기 때문에

'단방향' 이라고 부른다.

 

종류

  • SHA
  • MD
  • HAS

 

본문

SHA-256이나 md로 암호화하는 자료는 많이 있다. 하지만 SHA-512로 암호화하는 함수는 자료가 많지 않다.

SHA-512로 암호화해서 전송하라는 요청을 받았고 아래 함수를 사용해 암호화해서 전송을 한다.

 

 

1. getSHA512

//비밀번호 암호화(SHA-512)

fun getSHA512(input: String): String {
    val md: MessageDigest = MessageDigest.getInstance("SHA-512")
    val messageDigest = md.digest(input.toByteArray())

    val no = BigInteger(1, messageDigest)

    var hashtext: String = no.toString(16)

    while (hashtext.length < 32) {
        hashtext = "0$hashtext"
    }

    return hashtext
}
val sha512 = getSHA512(userpw)

이런식으로 사용하면 된다.

반응형