У меня есть хеш-код MD5 с миллионом символов, и у меня есть первые 999,992 символов. Мне нужно переделать последние 8 цифр. Можно ли перенести хэш хэш первых символов (давайте назовем его базовым хешем), а затем просто грубой 8 строк длины символов и добавим хэш к базовому хешу, чтобы быстрее найти правильный проход? Какой алгоритм я должен использовать или какое программное обеспечение может мне помочь?Precalculating MD5
ответ
Да, это возможно. MD5 основан на Merkle-Damgård construction, который выполняет хеширование в блоках. Вы можете хэшировать несколько блоков, а затем сохранить состояние хэш-функции и использовать ее в качестве отправной точки, чтобы попробовать различные возможности для остальных блоков.
На основе документации (я не проверял), я думаю, вызова clone()
на Java MessageDigest
будет копировать текущее состояние хэш-функции. Вы можете использовать это, чтобы построить свой частичный хэш из известных символов, а затем создать клон для каждой догадки. Это предполагает, что реализация MD5 фактически поддерживает клонирование. Есть шанс (в зависимости от того, какой язык и библиотека вы используете), что вам, возможно, придется написать собственную реализацию MD5.
Обратите внимание, что размер блока MD5 составляет 512 бит (64 символов), а длина пароля (один миллион) является целым кратным этого. Это означает, что ваши символы пароля полностью заполнят последний блок данных, а хеш-функции потребуется дополнительный блок для заполнения. Таким образом, вы предварительно скопируете частичный хеш первых 999 936 символов, которые вы знаете, затем создайте окончательный блок данных из оставшихся 56 символов, которые вы знаете, плюс 8, которые вы угадываете, затем добавьте блок дополнений после этого.
Реализация, как Java MessageDigest
, должна позаботиться о деталях деления вещей на блоки. Вы можете возможно (опять же, я не тестировал) просто создайте MessageDigest
, позвоните digest(byte[])
с вашими 999,992 известными байтами, а затем позвоните clone()
.
Но у меня мало времени, и мне нужно перевести только один пароль. Существуют ли какие-либо программы или библиотеки, которые могут это сделать? – michaeluskov
Не то, чтобы я знал, но я никогда не смотрел. Этот сайт посвящен программированию, а не взлому паролей, поэтому я обращаюсь к вашему вопросу программирования, а не к необходимости взломать пароль. – Wyzard
Я попробовал хэш 999936 символов, хэш 64 символа (8 последних цифр = 0), а затем добавить каждый 8 байтов первого хэша к каждому 8 байтам второго. Ответ не равен хэшу с полным 1 миллионом паролем. – michaeluskov
- 1. хеширование PHP MD5 (MD5)
- 2. Получение MD5 от Oracle в соответствии с MD5 MD5
- 3. сравнение PERL md5() и PHP md5()
- 4. MySQL, MD5 и MD5 Java не равно
- 5. Python MD5 не соответствует md5 в терминале
- 6. Проблема с MD5 MD5, отсутствующие символы
- 7. C# md5 и php md5 not mach
- 8. Различные между PHP md5 и JAVA md5
- 9. MD5 хэш MySQL является md5 неправильный
- 10. Импорт MD5 + Соляные пароли в MD5
- 11. Любая разница в вероятности столкновения между md5 (stringa + stringb ...) и md5 (stringa) + md5 (stringb)?
- 12. Быстрая библиотека MD5 не быстрее Java 7 MD5?
- 13. PHP md5 пароль не равен базе данных md5 password
- 14. Blackberry кодирует MD5, отличный от MD5, в C#
- 15. почему TCL md5: md5 результат отличается от результата md5sum
- 16. Затмение/Ant md5 не соответствует никакой другим md5
- 17. C# MD5 хеширование должно соответствовать хешированию PHP MD5 (с солью)
- 18. PHP MD5/base64 шифрование на C# md5/base64 шифрование
- 19. Почему md5 не соответствует Perl's Digest :: MD5 output?
- 20. PHP md5() дает разные выходные данные, тогда MySQL md5
- 21. Получение контрольной суммы MD5 на MD5 в Java
- 22. Хеширование паролей с MD5, SHA1 и MD5 по SHA1
- 23. echo в скрипте bash, меняющемся '-md5' на '? -md5'
- 24. Неожиданное значение хеша MD5 с помощью openssl/md5
- 25. MessageDigges md5 отличается от строки md5 базы данных
- 26. Возвращение неправильно MD5 строки в Perl с Digest :: MD5
- 27. Java MD5 хеширование не соответствует хешированию C# MD5
- 28. Выход из PHP MD5 и Solaris Digest MD5 DonT соответствуют
- 29. Объедините суммы md5 частей, чтобы получить сумму md5 полной строки
- 30. Convert MD5 messageDigest от Java к дайджесту :: MD5 Ruby
Вы говорите об одном пароле длиной в миллион символов, а не о миллионе разных паролей, верно? – Wyzard
Да. Один пароль, который содержит миллион символов. Я знаю хэш и все символы, кроме последних 8, и хочу быстро найти правильный пароль. – michaeluskov