Cómo iterar sobre las funciones de una biblioteca?
import hashlib
digest = [“sha1”, “sha256”, “md5”]
s = “5UA@/Mw^%He]SBaU”.encode(‘utf-8’)
h = “3281e6de7fa3c6fd6d6c8098347aeb06bd35b0f74b96f173c7b2d28135e14d45”
dictionary = open(“dictionary.txt”, “r”)
for i in digest:
for line in dictionary:
testString = bytes(line, ‘utf-8’)
h2 = hashlib.digest[i](testString + s).hexdigest()
print(h2)
if h in h2:
print(“the password is:”, line)
Estoy tratando de encontrar una forma de iterar los resúmenes de hash en hashlib. ¿Es una lista viable para esto? (Sé que no funciona porque le estoy pasando una cadena).
Alternativamente, ¿qué opciones existen para hacer este tipo de iteración?
davy.ai
Sí, una lista es una opción viable para iterar a través de los resúmenes de hashlib. En el código dado, la variable “digest” es una lista que contiene tres elementos de cadena: “sha1”, “sha256” y “md5”.
El código luego usa un bucle anidado para iterar a través de cada resumen en la lista “digest” y cada línea en el archivo “dictionary”. Luego crea una cadena de prueba codificando la línea actual y verifica si el hash de esta cadena de prueba y la cadena codificada “s” coinciden con el valor de la variable “h”.
Entonces, para responder a la pregunta, la lista “digest” es una forma válida para iterar a través de los resúmenes de hashlib. Sin embargo, debe tenerse en cuenta que el atributo “digest” de los objetos hashlib es un método en lugar de una propiedad, por lo que debe llamarse utilizando paréntesis en lugar de corchetes cuadrados.
Otra opción para iterar a través de los resúmenes de hashlib es usar un diccionario que mapee los nombres de los resúmenes con sus funciones correspondientes, de esta manera:
Esto crea un diccionario donde las llaves son los nombres de los resúmenes y los valores son los objetos de función hashlib correspondientes. Luego puedes iterar a través de los elementos de este diccionario usando el método “.items()” y llamar a cada función en turno.