MD5

MD5๋Š” 128๋น„ํŠธ ํ•ด์‹œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์•”ํ˜ธํ™” ํ•ด์‹œ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋‹ค ์ธ์ฆ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๋กœ ๋ณ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Drawing

๊ฐ™์€ ๊ฐ’์€ ํ•ญ์ƒ ๊ฐ™์€ 32์ž(16byte)์˜ ํ•ด์‹œํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์•„๋ฌด๋ฆฌ ํฐ ๋ฐ์ดํ„ฐ๋„ ๊ฐ™์€ 32์ž์˜ ํ•ด์‹œํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ์ดํ„ฐ์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•˜๊ธฐ ์ข‹์Šต๋‹ˆ๋‹ค.

How do code?

class Md5{ 
    fun encrypt(password: String): String = with(MessageDigest.getInstance("MD5")){
        this.update(password.toByteArray())
        this.digest()
    }
        .let {
            val sb = StringBuilder()
            for (b in it) {
                sb.append(String.format("%02x", b))
            }
            sb.toString()
        }
    fun verify(raw:String,encrypted:String): Boolean = encrypt(raw) == encrypted
}
-------------------------------------------------------------------------------------
fun main(args: Array<String>) {
    val target = "Junnyland"
    val md5=Md5()
    val encrypt = md5.encrypt(target )
    println(md5.verify(target,encrypt)) // true
}

Last updated