Obviamente, es demasiado tarde para ayudarte, pero ¿por qué no responder de todos modos? La respuesta corta es que su comprensión es correcta: no hay mucho que pueda hacer al analizar los hashes para determinar el rango de valores posibles. Tu única opción son las variaciones de la fuerza bruta, pero si los números se reparten por todo el espacio de búsqueda, no hay nada que nadie pueda hacer, incluso con toda la potencia informática del mundo. Sin embargo, aquí están los tipos de cosas que intentaría:
1. Búsqueda de hash previamente calculada
Para un hash MD5 simple (sin sal) este es el punto de inicio más fácil. Una búsqueda rápida en Google le ofrecerá una gran cantidad de servicios que "crackearán" los hashes MD5, ya que ya contienen una gran base de datos de valores MD5 para una amplia variedad de entradas. Desafortunadamente para usted, estas están generalmente destinadas a descifrar contraseñas, por lo que ninguna de las que encontré en línea contiene entradas de solo números, especialmente en el rango que está viendo (la mayoría contiene palabras reales, variaciones de palabras, combinaciones de palabras o todas las combinaciones) de cadenas alfanuméricas hasta ciertas longitudes). Desafortunadamente, esto no funciona para ti.
2. Estimación del rango de valores
Por lo tanto, su primer objetivo debe ser determinar cuál es el rango potencial de valores. Debería poder al menos averiguar si puede resolver esto en un tiempo razonable. Usted hace esto, simplemente, comenzando desde la parte inferior de su rango ( 1000000
) y trabajando de manera ascendente, un número a la vez, durante un período de tiempo razonable (¿tal vez una hora?). Usted citó una tasa de hash de 1e9 / s (o 1GHs / s). Después de una hora, eso significa que habrá probado los números 3.6e12. ¿Encontraste una coincidencia?
2a. ¡Encontraste un partido en una hora!
Si es así, encontraste una coincidencia, entonces el problema se resolvió. Incluso puede comenzar a estimar el rango de valores que ocupan los números y el tiempo que puede tardar en encontrarlos todos. Hasta cierto punto, esta es una variación del problema del tanque alemán . No voy a pretender saber cómo hacer cálculos matemáticos con precisión desde mi mente, por lo que puede pedir ayuda para estimar el rango total de números de sus datos (y, por lo tanto, cuánto tiempo puede esperar. para encontrarlos a todos), o prueba algo ingenuo como:
hours_to_crack_everything = 1000/number_found_in_first_hour
Obviamente, su estimación será más precisa a medida que encuentre más. Es importante que siempre haya una posibilidad de que tengas mucha suerte. Podría ser que los números cubran el rango completo de valores permitidos ( 1e6
- 1e27
y resultó que había uno en los primeros trillones de valores. Las probabilidades de que esto ocurra son muy pequeñas ( 3.6e-15
), por lo que Si do encuentra un valor, prácticamente garantiza que los números cubren un rango mucho más pequeño, pero quién sabe, tal vez acaba de ganar la lotería (aunque para ser justos, sus probabilidades de ganar la lotería son mucho, mucho mejores). ).
2b. Una hora, no hay partido
Si no encontraste una coincidencia en una hora, entonces probablemente estés jodido. Usted dijo en un comentario que tiene 11.5 días disponibles ( 10e6
segundos). Después de una hora, ya ha consumido aproximadamente 1/300 de su tiempo disponible. Como resultado, dado que solo ha cubierto una fracción minúscula de su espacio de búsqueda en una fracción mucho mayor de su tiempo disponible, lo más probable es que no sea posible encontrar un solo hash en el período de tiempo asignado. Probablemente solo deje correr mi hash box (porque esa es la única opción disponible para ti en la que puedo pensar), pero lo más probable es que fallarás.
3. Hash más rápido?
Vale la pena mencionar: en estos días puede obtener plataformas de hash (por unos pocos miles de dólares) con tasas de hash mucho más altas. Sin embargo, se aplica la misma matemática básica. Incluso con una tasa de hash un factor de 1000 más alto, con un espacio de búsqueda tan grande, solo hay dos opciones: los números no llenan todo el espacio de búsqueda, en cuyo caso hay esperanza, o llenan todo el espacio. el espacio de búsqueda, que es demasiado grande para poder atacar a la fuerza con la tecnología actual.
Irónicamente, sus probabilidades de éxito hubieran sido mayores si hubieran sido contraseñas en lugar de números.