domingo, 29 de julio de 2012

MD5 Hash Finder en C

    Hola de nuevo, hoy quería compartir con ustedes un par de programas que hice en C. Como dice el título es un buscador de hashes para md5, que complemente con un generador de db's para pasárselas al primero.

Y lo más importante, como estoy medio empezando en C, me gustaría que probaran el programa, analizaran el código, y me dijeran los posibles bug's que le encuentran, o si piensan que alguna función la harían de otra manera, ya saben todo viene bien para seguir aprendiendo.

    El primer programa simplemente hay que pasarle la db con los hashes que generamos con el segundo programa, nos pedirá el hash que queremos buscar y si encuentra coincidencias nos devolverá el string en texto claro.

    Para el segundo, al principio tenía pensado crear la db con un script simple en bash que quedaría talque así:

 1 #!/bin/bash
 2 while read line; do
 3   hashd=`echo -n "$line" | md5sum | cut -c1-32`
 4   echo "$hashd:·:$line" >> hashes_db
 5 done < file 
    Pero ya que estaba con C, pues que mejor que hacer otro programilla en C para la ocasión (todo sea por practicar). El programa es muy intuitivo, no tendrán problemas a la hora de saber como ejecutarlo. He puesto los mismos límites que en el otro, 99 caracteres en total por cada string a hashear, el archivo deberá tener una string por linea.

    Los resultados de hacerlo en C son obvios, hice pruebas con el diccionario que viene con el debian en /usr/share/dict/american-english (de unas 100k palabras), en bash tarda como 3.5 min en generar la db y en C creo que no llega a 1 segundo.

    Les dejo aquí el paquete de descarga con el source, los binarios y demás textos relevantes, tiene licencia GPL v3 linkada con openssl para uno de los programas.

    Descarga: md5finder-v0.tar.gz

ACTUALIZACIÓN v1

3 comentarios:

  1. Quería comentar que ya recibí algunas correcciones del usuario "dreams_eater" referentes a la estructura de uno de los programas.
    Como ahora no tengo nada de tiempo para revisarlo, solo quería que supieses que recibí tus correcciones y que las evaluaré en cuanto pueda.

    ResponderEliminar
  2. Que gran información de verdad es muy enriquecedora mas para instruirnos y saber este tipos de cosas.

    baymania

    ResponderEliminar
  3. Que pasada !!! me he bajado el programa y lo he usado y esta estupendo , ahora estoy revisando el
    codigo fuente , es muy interesante :)

    ResponderEliminar