Хэширование, в общем случае, необратимо, потому что сам алгоритм хэширования не гарантирует взаимно-однозначного соответствия исходных данных и их хэша.
Если исходные данные по размеру больше хэша, то очевидно, что найдётся несколько различных исходных данных с одинаковыми хэшами. Например, хэш-функция выдаёт 0 или 1 (один бит), а на вход поступили цифры от 0 до 7 (три бита).
Если размер данных меньше или равен размеру хэша, то зависит от алгоритма. Промышленные алгоритмы строятся с хорошей равномерностью распределения хэшей, поэтому можно допустить, что на таких данных функция хэширования имеет примерно однозначное соответствие.
Но, в любом случае, у функции хэширования нет простого алгоритма обратного преобразования.