Estoy tratando de construir un cracker md5 para la práctica. Antes de ir más lejos que aquí está mi código:¿Cómo puedo hacer una codificación binaria de una cadena en python?
def offline_wordlist_attack(list_path):
with fileinput.input(files=(list_path)) as wordlist:
for word in wordlist:
md5_hash_object = hashlib.md5() # constructing an md5 hash object
md5_hash_object.update(binascii.a2b_uu(word))
word_digest = md5_hash_object.digest() # performing the md5 digestion of the word
print(word_digest) # Debug
Mi problema es con md5_hash_object.update(binascii.a2b_uu(word))
. La documentación de hashlib Python 3 indica que la cadena que se pasa a update()
debe estar en representación binaria. La documentación usa m.update(b"Nobody inspects")
como ejemplo. En mi código, no puedo simplemente adjuntar b
al frente de la variable word
. Así que trató de utilizar la biblioteca binascii, pero esa biblioteca también tiene una nota en la documentación que indica:
Nota
de codificación y decodificación de funciones no acepte cadenas Unicode. Solo pueden procesarse bytes y objetos bytearray.
¿Alguien podría ayudarme con esto? Se está poniendo mejor de mí.
nota: 'fileinput.input()' puede ser demasiado lento en su caso. Podría usar 'md5 (word) .digest()' sin explícita 'update()'. – jfs