Существует несколько причин, по которым то, что вы спрашиваете, невозможно.
Во-первых, процесс создания кода MD5 ha sh теряет информацию. MD5 - это 128-битный код ha sh. Поэтому, если вы возьмете код ha sh размером более 128 бит (это 16 байт), по определению вы потеряете информацию.
Связано: существует бесконечное количество возможных строк. По принципу pigeonhole существует более одной строки, которая будет иметь sh для любого конкретного значения MD5.