Decode MD5, Brute Force
Haskell, 101 characters

import Data.Hash.MD5
main=interact$ \m-&gt;head.filter((==m).md5s.Str)$iterate([' '..'~']:)[]&gt;&gt;=sequence


Use it like so:

&amp; ghc -O2 -o brute 42043-BruteForce.hs
&amp; echo -n c-g | md5
bc098aea57599de26c8f17a9edbd492e
&amp; echo -n bc098aea57599de26c8f17a9edbd492e | ./brute
c-g


This requires the common package MissingH.