Выполняя некоторые проблемы с кодированием практики в Java от Advent of Code и наткнувшись на то, где он попросил меня найти наименьшее шестизначное целое число в сочетании с ведущей строкой iwrupvqb
, которая создала MD5, который начинался с пяти нулей.Создайте хеш MD5 с шестью ведущими нулями
Я нашел ответ на эту часть, используя функцию Apache DigestUtils.md5Hex, где я просто переборщил с помощью 100000-999999 и объединил ее с iwrupvqb
, пока не получил MD5, который начинался с пяти нулей.
Ответ пришел, чтобы быть iwrupvqb346386
создания хэш:
0000045c5e2b3911eb937d9d8c574f09
Теперь он просит меня найти один с шестью ведущими нулями. Я просматривал страницы и страницы о том, как работает алгоритм md5, инвертируя MD5 и т. Д., Но, похоже, не может понять проблему в формате уравнения, который поможет мне определить, как MD5 будет рассчитываться на основе используемых символов ,
Я даже пусть этот цикл запуска для как 30 минут - час, чтобы увидеть, если есть какие-либо удары за пределами шести цифр целого числа (потому что, по-видимому нет ни одного в сочетании с этим текстом фразы, которые создают шесть ведущих нулей)
Я ничего не знаю о шестнадцатеричном, поэтому на данный момент я просто делаю снимки в темноте и пытаюсь угадать число комбо всю ночь, это не мое дело. Мне не обязательно решать эту проблему ни для чего, кроме практики, но мне любопытно узнать больше о том, что здесь происходит. (И да, я знаю, что MD5 скомпрометирован, и я бы никогда не использовал его в производстве)
Так что в этом случае я должен просто позволить моей петле бежать вперед, пройдя iwrupvqb999999, пока не достигнет ответа? – Habitat