Hay una cantidad infinita de cadenas que tendrán un resultado MD5 comenzando con la cadena fija que desee, por la sencilla razón de que el espacio de entrada de MD5 es infinito, mientras que la salida es finita y está limitada a 128 bits.
Por supuesto, no puede encontrarlos con una sola operación, básicamente tiene que probarlos a todos cuando esté satisfecho.
Entonces, en su caso, comienza con a
, calcula MD5, prueba con sus criterios, se detiene aquí o pasa al siguiente caso b
... hasta z
, luego aa
hasta az
, ba
hasta bz
y luego hasta zz
, luego aaa
, etc.
Luego puede aplicar varias optimizaciones, incluyendo el uso de listas de hashes precomputados que puede encontrar en línea. Eche un vistazo a "Rainbow Tables", por ejemplo aquí: enlace
Algunos pueden ofrecerle "búsqueda inversa", pero, por supuesto, eso no puede ser exhaustivo.
En cuanto al tiempo que puede tomar, como decimos en francés: "depende".
No hay absolutamente ninguna manera de proporcionarle números concretos precisos para este tipo de pregunta de rendimiento, ya que depende demasiado del hardware.
Por cierto, ¿qué es una computadora portátil "normal"?