MD5๋ 128๋นํธ ํด์๋ฅผ ์์ฑํ๋ ์ํธํ ํด์ ํจ์์
๋๋ค.
๋๋ถ๋ถ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ๋ฅผ ์ํด ์ฌ์ฉ๋๋ค ์ธ์ฆ์ ์ํด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๋ก ๋ณํ๊ณ ์์ต๋๋ค.
๊ฐ์ ๊ฐ์ ํญ์ ๊ฐ์ 32์(16byte)์ ํด์ํจ์๋ฅผ ์์ฑํฉ๋๋ค.
์๋ฌด๋ฆฌ ํฐ ๋ฐ์ดํฐ๋ ๊ฐ์ 32์์ ํด์ํจ์๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์, ๋ฐ์ดํฐ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๊ธฐ ์ข์ต๋๋ค.
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
}