Как получить из MD5 исходный текст?

1 23
Удивительно
На сайте с 07.07.2009
Offline
215
#21
Ink:
Какая разница, какой исходный пароль, 46, 100 или 200, если потом всё равно используется MD5? Можно подобрать не сам пароль, а более короткую коллизию, которая даёт то же значение хэша.

+1

вот бы нагенерить базу ВСЕХ возможных значений MD5.

это ж сколько терабайт получится? 😂

Качественная семантика недорого ( https://moab.tools/ )
Spell
На сайте с 14.07.2006
Offline
72
#22

Я уже считал. Если брать a-zA-Z0-9 + #spec, а получается порядка 90 символов, и пароль 1-8 символов, получим: 90 + 90^2 + 90^3 + 90^4 + 90^5 + 90^6 + 90^7 + 90^8 = сами считайте ...

Ведь только 90^8 = 4304672100000000 комбинаций, каждая MD5 это 32 символа\байта, 32*4304672100000000 = ~4300 терабайт информации.

Брутфорс, в этом случае, самое лучшее решение, хоть седина проростет, пока он что-то подберет.

Удивительно
На сайте с 07.07.2009
Offline
215
#23
Spell:
~4300 терабайт информации.

м-да уж...

Grimich
На сайте с 08.04.2009
Offline
43
#24

Интересно, когда винты такой толщины появятся..) это уже Петабайт :)

Spell
На сайте с 14.07.2006
Offline
72
#25

Не обязательно хранить хеши в таком виде, можно оптимизировать для экономии места.

MD5 выводит результат в хексе, где 1 символ это диапазон 0-15. Получается для одного символа достаточно 4х бит, и в один байт поместится 2 символа хеша, а полный хеш в 16 байт. В результате база хешей для 8ми значного пароля уменьшится до ~2150 Тб. А если еще и упаковать каким-то ZIP, или прочим, алгоритмом, сэкономим еще может 5% места.

А базу хешей для 1-5ти значных паролей иметь вполне реально, это не так уж и много, всего ~90 Гб испачканного места на винчестере.

Добавлю, сами пароли при генерации хешей хранить не нужно, достаточно чтоб хеши были правильно пронумерованы (пересчитывались). Т.е. вычислив "нужный" хеш пароля, скрипт получает его порядочный номер, и по алгоритму (который использовался при генерации базы хешей) вычисляет пароль.

Spell добавил 19.05.2010 в 10:49

Что-то я сам уже запутался.

1- есть база хешей.

2- берем "чужой" хеш и сравниваем с базой.

3- Цикл крутит и считает, на выходе получаем порядковый номер совпавшего хеша, если он совпал. (затраты времени на сравнение хеша с бд)

4- На основе порядкового номера генерируем пароль. (затраты времени на генерацию пароля)

Хз, может и брутфорсить быстрее, сравнить бы на реальном примере.

1 23

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий