Contrasena MD5: como hacer hash de una contrasena y cuando MD5 esta mal
"Contrasena MD5" usualmente significa una de dos tareas de lector: hacer hash de una cadena de contrasena conocida en un fingerprint de 32-hex, o recuperar la contrasena original a partir de un hash. La primera es una tarea de una sola vez que un conversor MD5 maneja en segundos. La segunda es imposible en general - y para almacenamiento real de contrasenas, MD5 es la primitiva equivocada por completo.
Ultima revision: 2026-05-23
| Intencion del lector detras de "contrasena MD5" | Lo que MD5 realmente hace | A donde ir |
|---|---|---|
| "Hacer hash de mi cadena de contrasena en MD5 para almacenarla o compararla" | Hashing de una vez de texto de hasta 990 caracteres en un digest de 32-hex. La misma entrada siempre produce la misma salida. | https://freetoolonline.com/developer-tools/md5-converter.html (boton To MD5) |
| "Tengo un hash MD5 y quiero la contrasena original" | No es posible por diseno. Una busqueda en diccionario puede tener exito si la misma cadena fue previamente pareada - fallara para cualquier entrada que el diccionario nunca haya visto. | Cuando la busqueda MD5 realmente funciona |
| "Estoy almacenando contrasenas de usuario en una base de datos" | Primitiva equivocada. MD5 es rapido y sin sal por defecto, ambas propiedades que hacen viable la fuerza bruta offline en hardware moderno. | Elija bcrypt, argon2id o scrypt |
| "Necesito un fingerprint de una cadena de config o payload corto" | MD5 es aceptable para fingerprints no-adversariales: claves de cache, IDs de dedup, ETags, verificaciones cortas de integridad. | https://freetoolonline.com/developer-tools/md5-converter.html (boton To MD5) |
| "Por que el sitio no puede darme el original?" | MD5 es una funcion trapdoor de una via. El recorrido matematico explica por que no existe inversa. | Por que MD5 no puede ser descifrado |
Como hacer hash de una cadena de contrasena con MD5
Abra el conversor MD5, pegue su cadena de contrasena en el area de texto superior y haga clic en el boton To MD5. Un digest de 32-hex aparece de inmediato - la misma entrada siempre produce la misma salida, y por eso MD5 funciona como fingerprint. El area de texto acepta hasta 990 caracteres, que cubre cualquier longitud realista de contrasena mas un prefijo opcional de sal que usted concatena a mano antes de hashear. El resultado es adecuado para usos no-adversariales como claves de dedup, identificadores de cache y verificaciones cortas de integridad donde solo necesita un identificador corto y estable para una cadena mas larga. El texto original de la contrasena nunca aparece en el digest - la salida de 128 bits es un fingerprint de una via, no una forma cifrada de la entrada.
Por que MD5 es la herramienta equivocada para almacenar contrasenas de usuario
El almacenamiento de contrasenas es un contexto adversarial: un atacante que roba la base de contrasenas intenta recuperar las contrasenas en texto plano para los hashes robados. MD5 fracasa mal en este trabajo por dos razones. Primero, MD5 es rapido - una GPU moderna computa miles de millones de digests MD5 por segundo, lo que significa que una base robada de contrasenas hasheadas con MD5 puede ser forzada por diccionario de contrasenas comunes en horas, no siglos. Segundo, MD5 no tiene sal integrada: contrasenas identicas entre usuarios producen digests identicos, asi que un solo lookup de diccionario ataca a todos los usuarios con la misma contrasena de una vez. La correccion no es "MD5 mas fuerte" - la correccion es cambiar a una primitiva construida para almacenamiento de contrasenas. Bcrypt, argon2id y scrypt son deliberadamente lentos (factores de trabajo configurables que escalan con el hardware) y requieren sales por usuario por construccion. La guia dedicada de alternativas explica cual encaja en cual flujo de login web, llave API o token.
Lo que los sitios de "lookup de contrasena MD5" realmente hacen
Los sitios que afirman "descifrar contrasena MD5" o "revertir MD5" no ejecutan MD5 al reves - tal operacion no existe. Lo que realmente hacen es buscar el hash de 32-hex en un diccionario precomputado de cadenas hasheadas antes. La busqueda tiene exito cuando la contrasena es comun lo suficiente para aparecer en el diccionario (la mayoria de listas top-10000 de contrasenas estan exhaustivamente pre-hasheadas) y falla para cualquier contrasena unica lo suficiente para que nadie la haya hasheado antes. El conversor MD5 en este sitio expone la misma busqueda como boton To Text - pegue un hash de 32-hex, haga clic en el boton, y el diccionario devuelve el texto plano coincidente si existe el par. La busqueda es una coincidencia de fingerprint contra datos historicos, no una computacion inversa criptografica. Para contrasenas unicas o aleatorias el diccionario devuelve nada - ese es el comportamiento esperado, no un bug.
Cuando MD5 de una contrasena es aceptable
Fuera de autenticacion, MD5 de una cadena con forma de contrasena puede ser una eleccion razonable. Si necesita un identificador corto y estable para una cadena larga - la clave de cache para un endpoint API con alcance por inquilino, el ID de dedup para un job encolado por envio de usuario, el ETag para un pequeno payload de texto - MD5 encaja porque es rapido y produce una cadena de 32-hex de ancho fijo. Las propiedades que hacen a MD5 inseguro para autenticacion (velocidad, sin sal) son exactamente las propiedades que lo hacen util para fingerprinting. La regla: si un atacante que adivinara la entrada ganaria algo de un palpite exitoso, no use MD5. Si la entrada es operacionalmente no-secreta y solo necesita un identificador corto y estable, MD5 esta bien.
Preguntas frecuentes
Puedo hacer MD5 de una contrasena y usar el resultado como contrasena almacenada?
Tecnicamente puede, pero no deberia. Una base de contrasenas MD5 robada es funcionalmente equivalente a una base de contrasenas en texto plano para cualquier contrasena comun, porque la fuerza bruta en GPU contra diccionario recupera la mayoria en horas. Use bcrypt, argon2id o scrypt - estan disenados para este trabajo.
Es el MD5 de "password" el mismo en cada sitio?
Si. MD5 es una funcion deterministica: la misma entrada siempre produce el mismo digest de 32-hex. El MD5 de "password" es 5f4dcc3b5aa765d61d8327deb882cf99 en cada sitio, en cada herramienta, en cada lenguaje - exactamente la propiedad que hace al MD5 sin sal inseguro para almacenamiento de contrasenas y util para fingerprinting.
Como agrego una sal antes de hashear una contrasena con MD5?
Concatene la cadena de sal con la cadena de contrasena antes de pegar en el conversor: sal + contrasena o contrasena + sal, su eleccion. El hash resultante esta salado en el sentido de que la misma contrasena con sal diferente produce un digest distinto. Pero esto sigue siendo MD5 - la sal solo bloquea el ataque de diccionario, no el ataque de fuerza bruta sobre el par salado en si. Use bcrypt o argon2id, que combinan sal y factor de trabajo lento en una primitiva.
El boton "decrypt" del conversor MD5 devolvio mi contrasena - esta MD5 roto?
No. La busqueda To Text devolvio una coincidencia porque su contrasena fue previamente pareada con ese hash en el diccionario. Si pega una contrasena que nadie mas ha hasheado - una cadena aleatoria de 12 caracteres, por ejemplo - la busqueda devuelve nada. La palabra "decrypt" es taquigrafia conveniente para la operacion de lookup; la criptografia en si sigue siendo de una via.
Que longitud de contrasena hace que la busqueda MD5 falle?
Cualquier contrasena lo suficientemente larga y aleatoria como para que ningun diccionario la tenga. En la practica, una contrasena totalmente aleatoria de 12 caracteres de un alfabeto de 70 caracteres tiene aproximadamente 2^74 valores posibles - mucho mas alla de cualquier diccionario practico. Una contrasena de 6 caracteres del alfabeto minusculo tiene 26^6 aproximadamente 309 millones de valores, lo que cabe comodamente en un diccionario precomputado. La longitud y la aleatoriedad, no la eleccion entre MD5 o SHA-256, determinan si la busqueda tiene exito.