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