es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué solo estoy obteniendo 800 hashes por segundo?

Estaba intentando romper una contraseña de 6 caracteres de longitud, pero incluso después de 10 minutos, no mostraba ningún progreso. Así que decidí averiguar cuántos hashes estoy encontrando por segundo.

El siguiente código necesita romper la contraseña, que es ‘zzzz’, h es el hash proporcionado por crypt, mientras que s es la sal y el algoritmo de hashing utilizado.
from itertools import product
import crypt

zzzz

h = '$6$XR2ZpTWwyJL90BVD$HpFiwwuLyHOVbWnk/G/gUW.Hz0SutY4F9io4zjWkLL8bK6F3A4WCdSWQNgtq8fTx6PuzM1cdyQdlN2Qv/HlzH.'
s = '$6$XR2ZpTWwyJL90BVD$'

def brute(hash, salt, charSet="abcdefghijklmnopqrtuvxyz"):
# for pwd_len in range(7):
for guess in product(charSet,repeat= 4):
guess=''.join(guess)
if hash == crypt.crypt(guess, salt):
return guess
return -1

print(brute(h, s))

Esto son 456,976 hashes, pero el tiempo que se tarda en romper la contraseña es de 9 minutos y 20 segundos, lo cual es extremadamente lento. Sé que el monohilo no es ideal, pero ¿no es todavía muy bajo?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para calcular cuántos hashes se encuentran por segundo, podemos dividir el número total de hashes (456,976) por el tiempo tomado para descifrar la contraseña (560 segundos):

    456976 hashes / 560 segundos = 816.4 hashes por segundo
    

    Esta es una velocidad relativamente lenta, especialmente para el poder de cómputo moderno. Como se mencionó, el uso de múltiples hilos o un enfoque diferente puede aumentar la velocidad del descifrado.

Comments are closed.