Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.security.MessageDigest
- object day5 extends App {
- def digest = MessageDigest.getInstance("MD5")
- def md5(s: String): String = digest.digest(s.getBytes).map("%02x".format(_)).mkString
- def seed = "uqwqemis"
- def find = {
- def inner(n: Int, pwd: String): String = pwd match {
- case s if s.length == 8 => s
- case _ =>
- val hash = md5(seed + n)
- if (hash.take(5) == "00000") inner(n + 1, pwd + hash(5))
- else inner(n + 1, pwd)
- }
- inner(0, "")
- }
- def find2 = {
- def inner(n: Int, m: Map[Int, Char]): String = m match {
- case s if s.size == 8 => (0 to 7).map(s(_)).mkString
- case _ =>
- val hash = md5(seed + n)
- if (hash.take(5) != "00000") inner(n + 1, m)
- else {
- val key = hash(5).asDigit
- if (!m.keySet.contains(key) && key < 8) inner(n + 1, m + (key -> hash(6)))
- else inner(n + 1, m)
- }
- }
- inner(0, Map[Int, Char]())
- }
- println(find)
- println(find2)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement