Я создаю программу, которая генерирует радужную таблицу и позволяет находить внутри нее пароли.
Длина моих паролей составляет 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
Для определения c га sh, чтобы найти, с помощью этого алгоритма я найду много строк в моей сгенерированной радужной таблице. И в каждой строке мне нужно пересчитать всю строку без шансов что-либо найти.
Мои вопросы: как лучше создать радужную таблицу с максимальным количеством уникальных паролей? Если взять номер столбца - хорошая идея, как вам эффективно выполнять поиск?
Если вам нужна дополнительная информация, спросите меня. Спасибо, Томас.