Если в двух словах, то это можно сделать следующим "тупым" алгоритмом:
# Придумываете значение хэш функции. Например: final_hash = '4817504d069b4c5082161b02a22116ad75f822b1'
# Начинаете перебор, дописывая к исходной строке с хешем произвольные строки:
txt = final_hash + 'a'
txt = final_hash + 'b'
txt = final_hash + 'c'
...
txt = final_hash + 'z'
txt = final_hash + 'aa'
txt = final_hash + 'ab'
...
# Для каждого варианта вычисляете значение хеша и сравниваете с final_hash. Как только calc_hash(txt) == final_hash - значит вы нашли искомую строку, которая содержит собственный хеш.
Проблема в том, что такой перебор может занимать от 5 минут до 5`000 лет.
Возможно существует какой-нибудь умный перебор с использованием
радужных таблиц.
Многое зависит от вида хеш функции.