Ask a Question
Ask Question Login
Corporate Training
  1. Community
  2. Python
  3. Question
Python

How to correct TypeError: Unicode-objects must be encoded before hashing?

Asked by Charles Parr Jun 8, 2021 3.2K views 1 answer
Share

About this question

 I have this error:

Traceback (most recent call last): 
File "python_md5_cracker.py", line 27, in m.update(line) 
TypeError: Unicode-objects must be encoded before hashing

when I try to execute this code in Python 3.2.2:

import hashlib, sys 
m = hashlib.md5() 
hash = "" 
hash_file = input("What is the file name in which the hash resides? ") 
wordlist = input("What is your wordlist? (Enter the file name) ") 
try: 
hashdocument = open(hash_file, "r") 
except IOError:
print("Invalid file.") 
raw_input() 
sys.exit() 
else: 
hash = hashdocument.readline() 
hash = hash.replace("n", "") 
try: 
wordlistfile = open(wordlist, "r") 
except IOError: 
print("Invalid file.") 
raw_input() 
sys.exit() 
else: 
pass for line in wordlistfile: 
# Flush the buffer (this caused a massive problem when 
placed 
# at the beginning of the script, because the buffer kept
 getting 
# overwritten, thus comparing incorrect hashes) 
m = hashlib.md5() 
line = line.replace("n", "") 
m.update(line) 
word_hash = m.hexdigest() 
if word_hash == hash: 
print("Collision! The word corresponding to the given
hash is", line) 
input() 
sys.exit() 
print("The hash given does not correspond to any supplied word in the wordlist.") 
input() 
sys.exit()

Your answer

1 Answer

More Python discussions

Learn & Explore

Free tutorials and interview questions from industry experts — learn the skill, then get ready to prove it.

Latest Python Blogs

Guides, tips and career advice on Python from JanBask experts.