В последние дни пришлось нарыть кучу способов, как ускорить перебор и анализ хешей. Поделюсь тем, что лично проверил и что обычно спасает настроение.
Чаще всего тормозит вычисление хешей на плохом железе или нечитабельный код. Если надо работать с тысячами или миллионами хешей, то лучше сразу переходить с интерпретируемых языков на что-то компилируемое и с параллелизмом — например, C, Rust или Go, а не Python без оптимизаций.
Ещё в помощь — GPU. Писал пару простых скриптов с OpenCL, и ускорение налицо, хотя для новичка настройка будет не самый кайф. Если GPU нет или нет желания вникать, то хотя бы пытайтесь правильно профилировать код, чтобы не делать кучу лишних действий на каждом шаге.
По софту — стоит глянуть на те же hashcat и john, они умеют использовать и CPU, и GPU аккуратно и достаточно быстро. Но если задача специфичная, возможно, есть смысл написать свой узкоспециализированный скрипт, заранее отбросив лишние операции.
И — строго по порядку: сначала пробуйте уменьшить объем обрабатываемых данных, используя фильтры и предварительную проверку, а не сразу нагружать все подряд.
Кто как вообще работает с большими объемами хешей? Есть что добавить по ускорению?