Mira el MD5 no es un algoritmo de cifrado una fución hash o de resumen, se puede ocupar para manejo de contraseñas como lo hace linux, para no tener tus contraseñas en texto claro, lo que hace es te saca un resumen de la contraseña y una de las propiedades de las funciones hash en este caso el md5 es que es casi improbable encontrar 2 resumenes iguales.
Los algoritmos de cifrado modernos se dividen en simétricos o de clave secreta y asimétricos o de llave pública, si quieres apreder criptografía te recomiendo que investigues sobre el AES, DES, TDES de simétrica y RSA y curvas elípticas de asímetrica,
Tengo un programa en java que hice para la escuela que te explica paso a paso lo que es la criptográfia desde una permutación, hash, hasta el RSA, si quieres mandame un correo y te lo envio, o también existe en la red un programa llamado criptool
http://www.cryptool.de/ que también tiene muchos algoritmos de cifrado.
bye.