MD5 no es un algoritmo de cifrado como tal. Es un algoritmo de generación de hashes y por lo tanto, no es reversible. Básicamente, al mensaje original que se aplica una fórmula matemática que da como resultado una cadena de 16 bytes (128 bits).
Los sistemas que utilizan MD5 para validar claves de acceso a sistemas lo que hacen es almacenar el nombre de usuario junto al hash obtenido al aplicarle el algoritmo MD5 a la clave. Cuandoun usuario registrado se quiere logar se vuelve a aplicar el algoritmo MD5 a la clave introducida, y si para ese usuario el hash almacenado coincide con el hash recién generado, se le deja ingresar.
También se utilizan algoritmos MD5 (y similares como por ejemplo SHA) para validar la integridad de archivos o software. Se general el hash del archivo con MD5 y se adjunta a la descarga. El usuario que se lo descarga calcula de nuevo el hash y lo compara con el hash que venía junto con el archivo descargado. Si ambos hashes son iguales el archivo es correcto, si son diferentes o está corrupto o lo han manipulado.
Un hash de MD5 tiene siempre el mismo tamaño sin importar el tamaño del mensaje con el que se genera. Un mismo mensaje siempre genera el mismo hash. Un mensaje ligeramente diferente genera un hash completamente diferente.
La única forma que tienes para vulnerar ese sistema del que tienes las cadenas hash generadas con MD5 es buscar colisiones. Una colisión es una cadena que al aplicarle el algoritmo te genera un hash similar al generado con otra cadena distinta.
Si quieres más información puedes empezar por
http://es.wikipedia.org/wiki/Algoritmo_MD5