Хеши: пробовать расшифровку или искать уязвимости?
Кому интересно начинать ковыряться с криптой и расшифровкой хешей — с чего вообще стоит стартовать? Если брать два подхода: либо пытаешься найти коллизии и слабые места в алгоритме (например, MD5 или SHA1), либо прямиком занимаешься подбором по словарям и «радужными таблицами».
Плюс первого в исследовательском потенциале — ты учишься, где алгоритм шатается, но это всегда долго, а заодно нужен глубокий уровень понимания теории криптографии. Зато такие знания чуть ли не единственная возможность реально «сломать» хеш без мощных вычислительных ресурсов.
Второй вариант проще — берёшь готовые базы для перебора и пытаешься подобрать исходник. Это быстрее и нагляднее, особенно если хеш слабенький и из простого пароля, но с более сложными паролями или солями обычно никак.
Если только вхожу в тему, обычно советуют сначала изучить, какой алгоритм используется, проверить — есть ли у него известные уязвимости, и попробовать простые инструменты с готовыми словарями. Потом уже можно углубляться и пробовать более теоретические штуки.
Кто как начинал? Что реально дало понимание? Или стоит сразу идти в криптоанализ и математику?
Мне кажется, лучше сначала с простого — пробовать словари и радужные таблицы, чтоб понять принцип. А потом уже, если интересно, в теорию лезть и искать слабости в алгоритмах. Сразу криптоанализом пыряться — многовато будет для старта.
В этой теме всё не так просто, как кажется. Иногда проще быстро пройтись по словарям и радужкам, особенно если пароль простой или алгоритм слабый. Но если хочешь что-то реально интересное — то только изучать уязвимости и коллизии, хотя это уже для более продвинутых, да и времени много уйдет. В итоге, зависит от цели: быстро вскрыть или понять, как и где алгоритм реально хромает.