Хеши — это вроде однонаправленная штука, и расшифровать их напрямую нельзя. Но народ часто спрашивает, можно ли это сделать и стоит ли вообще пытаться. На практике, если вы говорите про MD5, SHA1 и прочее старье, шансы угадать исходник есть только если это что-то простое типа пароля из словаря, тогда помогают радужные таблицы или брут. Делать это действительно сложно, если не использовать слабые алгоритмы или короткие ключи.
Если вы работаете с хешами, важно проверять, насколько они защищены — постарайтесь избегать устаревших алгоритмов и добавляйте соль. Проверять целостность данных лучше через современные функции типа SHA-256 и выше, и не пытайтесь "расшифровать" хеш, лучше проверять совпадение, пересчитав хеш заново.
Касаемо инструментов — большинство реально полезных идут в сторону перебора или поиска коллизий, а не магической расшифровки. Без коллизий и дополнительных уязвимостей хеш обратим только с помощью перебора и мощной подготовки.
Лично я к вопросу расшифровки отношусь осторожно — проще сменить алгоритм и подумать над безопасностью всего процесса, чем пытаться выкручивать хеш. Кто как думает, стоит ли вообще заморачиваться с расшифровкой или лучше сосредоточиться на предотвращении проблем с паролями и алгоритмами?