¿Por qué los hashes de contraseña MD5 / SHA1 no se pueden descifrar?

Hace poco leí un artículo sobrehash de contraseña.

¿Cómo se crean los hashes MD5 o SHA1 para que no puedan ser descifrados? Lo que creo es que debe estar codificando la cadena por cierta FÓRMULA (siempre da el mismo hash para la misma cadena; por lo tanto, no debe haber aleatorización) y por eso deberíamos poder descifrarla con la misma FÓRMULA. ¿O la gente no conoce la forumla?