Какой самый быстрый способ в среднем получить доступ к словарю хешированных паролей? - PullRequest
1 голос
/ 11 февраля 2020

Я сейчас пишу взломщик паролей в Python и думал о лучшей стратегии поиска в словаре хэшей паролей, основанной на загруженном списке слов.

Списки паролей, такие как rockyou, упорядочены в терминах наиболее распространенных паролей, поэтому мой первоначальный подход заключался в поиске в словаре по порядку, в случае, если ha sh, который я пытаюсь взломать, соответствует списку очень распространенный пароль, который находится вверху списка. Однако я думал, что для менее распространенных паролей этот линейный поиск может занять очень много времени, поэтому я подумывал о реализации бинарного поиска. Будет ли это быстрее в целом, или линейный поиск будет в среднем быстрее (учитывая, что многие пароли будут в верхней части списка?)

Было бы разумной стратегией выполнять линейный поиск поверх 100 или около того паролей, а затем переключиться на бинарный поиск, если не найден?

1 Ответ

1 голос
/ 11 февраля 2020

Мой метод выполнения этой задачи будет таким же, как и вы, чтобы сначала проверить наиболее распространенные пароли. Размер этого будет зависеть от размера вашей базы данных, бит проб и ошибок не будет go здесь промахом, поскольку правильное число будет зависеть от того, насколько случайны пароли.

Для полный поиск Я бы искал в хешах sorted , так как это часто происходит быстрее.

Почему обработка отсортированного массива быстрее, чем обработка несортированного массива?

...