Лучший способ создать функцию сокращения для Rainbowtable - PullRequest
0 голосов
/ 12 января 2020

Я создаю программу, которая генерирует радужную таблицу и позволяет находить внутри нее пароли.

Длина моих паролей составляет 10 символов с цифрами и буквами, которые хэшируются с помощью алгоритма MD5. У меня всего 3.3 * 10 ^ 11 возможности. Моя радужная таблица содержит 580 000 строк и 580 000 столбцов.

Если моя функция сокращения берет только один га sh и возвращает пароль, это означает, что 1 * 10 ^ 27 MD5 возможны для одного и того же пароля. С этой функцией у меня почти 0% уникальных паролей. Это не хорошее решение.

Пример (посмотрите последний байт):

3691308f2a4c2f6983f2880d32e29c84  and 3691308f2a4c2f6983f2880d32e29c81 will give the same password in some case

Поэтому я решил добавить параметр: номер столбца. У меня есть N функций уменьшения в зависимости от моего общего номера столбца для Rainbowtavle. С этим у меня есть 99% уникальный пароль.

пример моей радужной таблицы:

3691308f2a4c2f6983f2880d32e29c84 > artist000 > 139a8136d650efbd71d27ac6c44a05db > 1m9o8t0her > ...

Но при исследовании это сложно. Я последовал примеру на https://en.wikipedia.org/wiki/Rainbow_table#Example enter image description here

Для определения c га sh, чтобы найти, с помощью этого алгоритма я найду много строк в моей сгенерированной радужной таблице. И в каждой строке мне нужно пересчитать всю строку без шансов что-либо найти.

Мои вопросы: как лучше создать радужную таблицу с максимальным количеством уникальных паролей? Если взять номер столбца - хорошая идея, как вам эффективно выполнять поиск?

Если вам нужна дополнительная информация, спросите меня. Спасибо, Томас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...