मैं अभ्यास के लिए एक एमडी 5 क्रैकर बनाने की कोशिश कर रहा हूं।मैं अजगर में एक स्ट्रिंग का बाइनरी एन्कोडिंग कैसे कर सकता हूं?
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
मेरे मुद्दा md5_hash_object.update(binascii.a2b_uu(word))
साथ है: इससे पहले कि मैं किसी भी आगे यहाँ जाना मेरी कोड है। hashlib पायथन 3 दस्तावेज बताता है कि update()
को पारित स्ट्रिंग बाइनरी प्रतिनिधित्व में होनी चाहिए। प्रलेखन उदाहरण के रूप में m.update(b"Nobody inspects")
का उपयोग करता है। मेरे कोड में, मैं परिवर्तनीय के सामने b
संलग्न नहीं कर सकता। इसलिए मैं binascii लाइब्रेरी का उपयोग करने की कोशिश की, लेकिन वह पुस्तकालय भी, प्रलेखन बताते हुए में एक नोट है:
नोट
एन्कोडिंग और डिकोडिंग कार्यों यूनिकोड तार स्वीकार नहीं करते। केवल बाइटस्ट्रिंग और बाइटरीयर ऑब्जेक्ट्स को संसाधित किया जा सकता है।
क्या कोई इस से मेरी सहायता कर सकता है? यह मेरे लिए बेहतर हो रहा है।
नोट: 'fileinput.input()' आपके मामले में बहुत धीमा हो सकता है। आप 'md5 (word) .digest()' बिना स्पष्ट 'अपडेट() 'का उपयोग कर सकते हैं। – jfs