Tôi đang cố gắng để xây dựng một md5 cracker để thực hành. Trước khi tôi đi xa hơn nữa ở đây là mã của tôi:Làm thế nào tôi có thể làm một mã hóa nhị phân của một chuỗi trong 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
Vấn đề của tôi là md5_hash_object.update(binascii.a2b_uu(word))
. Tài liệu hashlib Python 3 cho biết rằng chuỗi được chuyển đến update()
phải ở dạng biểu diễn nhị phân. Tài liệu sử dụng ví dụ m.update(b"Nobody inspects")
. Trong mã của tôi, tôi không thể chỉ cần đính kèm b
trước biến số word
. Vì vậy, tôi đã cố gắng để sử dụng thư viện binascii, nhưng thư viện mà quá, có một lưu ý trong tài liệu nêu:
Note
Encoding và giải mã các chức năng không chấp nhận chuỗi Unicode. Chỉ đối tượng xác nhận và đối tượng có thể được xử lý.
Ai đó có thể giúp tôi với điều này? Đó là nhận được tốt hơn của tôi.
lưu ý: 'fileinput.input()' có thể quá chậm trong trường hợp của bạn. Bạn có thể sử dụng 'md5 (word) .digest()' mà không có 'update()' rõ ràng. – jfs