¿Es md5 hash reversible?

PorLeón Ramos

¿Es md5 hash reversible?

Una de nuestras escuchas nos envió un reto. ¿Se puede obtener la semilla de un hash md5?

Como muchos saben, el hash md5 no es reversible, esto quiere decir que existe un algoritmo matemático que te permite generarlo pero no existe el algoritmo que te indique el camino de regreso.

En teoría no hay forma de obtener el texto o el contenido original que generó un hash md5, sin embargo, encontré cosas muy útiles al momento de encarar este reto.

Mi primera idea fue generar un pequeño programa que generara contraseñas aleatorias para poder encontrar el texto original. Acá les comparto el código que generé en python.

1 #!/usr/bin/python
1
2 import itertools
3 import hashlib
4 import sys
5
6 characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!$#%\"&()=?¿¡{}[]-_+.,:;"
7 length = 256
8 done = False
9 find = "900150983cd24fb0d6963f7d28e17f72"
10 #find = "e305cdbb739e4eda7ee90551b3f39f63"
11
12
13 for i in range(length):
14 def pw_guess():
15 res = itertools.permutations(characters,i)
16 for guess in res:
17 yield guess
18
19 options = pw_guess()
20
21 for option in options:
22 result = hashlib.md5(''.join(option).encode())
23 print(result.hexdigest())
24 if (result.hexdigest() == find ):
25 print("ECONTRADO==================================")
26 print(''.join(option))
27 sys.exit(0)

Sin embargo, el dar con la llave original me llevaría años. Así que opté por buscar otros caminos. Escuchen el podcast para que se den una idea de qué otras opciones se tienen para encontrar el texto original de un hash.

¿Qué se les ocurre a ustedes?

Photo by hessam nabavi on Unsplash

Nuestras Redes

@creadoresdigita CreadoresDigitales

Sigue a León, Hiram y Alina en Twitter

Hiram @hiramcoop
León @fulvous
Alina @alinapoulain

¡Escúchanos!

En Ivoox En Spotify
ApplePodcast En Youtube
Google podcast

Sobre el autor

León Ramos administrator

Ingeniero en sistemas electrónicos con diplomado en administración y escritura creativa. Empresario y escritor en el rubro de tecnologías de la información.