every hash function I am aware of involves doing many iterations of the same funtion, mixing
the output back into the input for the next stage.
in fact, the only difference between sha1 and sha256 are the number of iterations (as I
understand it anyway)
if you ever have a hash produce it's input as it's output you end up in a loop where
additional iterations will always produce the same output.
I was incorrect before when I said the problem was knowing the input that caused the output.
the fact that multiple inputs produce the same output prevents that knowledge from being
useful (expect in the case where the input is small enough that you can enumerate all of them
to produce a rainbow table that you can use in that specific situation)