Digest::MD5::Reverse uses online DBs which seem to store large amounts of texts and the corresponding MD5 sums.
That is probably the only reasonable way to do this. However, simply appending a random text/date on every text makes this pretty unusable.