【发布时间】:2015-12-06 03:00:32
【问题描述】:
在 Advent of Code 中用 Java 做一些练习编码问题,遇到了一个问题,它要求我找到最小的六位整数,结合 iwrupvqb 的前导字符串,生成一个以五开头的 MD5 哈希零。
我使用 Apache DigestUtils.md5Hex 函数找到了这部分的答案,我只是强制通过 100000-999999 并将其与iwrupvqb结合,直到我得到一个以五个零开头的 MD5。
答案是 iwrupvqb346386 创建哈希:
0000045c5e2b3911eb937d9d8c574f09
现在它要求我找一个有六个前导零的。我一直在浏览 md5 算法如何工作、反转 MD5 等的页面和页面,但似乎无法以方程格式找出问题,这将帮助我确定如何根据使用的字符计算 MD5 .
我什至让这个循环运行了大约 30 分钟 - 一个小时,看看它是否有任何超出六位数整数的命中(因为显然没有任何与此文本短语结合产生六个前导零)
我对十六进制一无所知,所以在这一点上,我只是在黑暗中拍摄,并试图整晚猜测数字组合并不是我的事。除了练习之外,我不一定需要解决这个问题,但我很想知道更多关于这里发生的事情。 (是的,我知道 MD5 已被泄露,我永远不会在生产中使用它)
【问题讨论】:
-
所以在这种情况下,我应该让我的循环向前运行,通过 iwrupvqb999999 直到得到答案?