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