python हैशिलिब मॉड्यूल का उपयोग कर यूनिकोड एन्कोड त्रुटि को कैसे ठीक करें?



unicode hashlib (1)

कई खोजों के बाद मैं यह निर्धारित करने में सक्षम नहीं हूं कि त्रुटि में कैसे बचें: "इस कोड का उपयोग करते समय" यूनिकोड-ऑब्जेक्ट्स को हैशिंग से पहले एन्कोड किया जाना चाहिए "

    pwdinput = input("Now enter a password:")
    pwd = hashlib.sha1()
    pwd.update(pwdinput)
    pwd = pwd.hexdigest()

मैं उस त्रुटि को कैसे प्राप्त कर सकता हूं? आप यूनिकोड-ऑब्जेक्ट्स को एन्कोड कैसे करते हैं?


pwdinput = input("Now enter a password:").encode('utf-8') # or whatever encoding you wish to use

मान लें कि आप पाइथन 3 का उपयोग कर रहे हैं, यह यूटीएफ -8 में एन्कोड किए गए bytes ऑब्जेक्ट में input() द्वारा लौटाई गई यूनिकोड स्ट्रिंग को परिवर्तित करेगा, या जो भी एन्कोडिंग आप उपयोग करना चाहते हैं। पायथन के पिछले संस्करणों में भी यह है, लेकिन यूनिकोड बनाम गैर-यूनिकोड स्ट्रिंग्स का उनका प्रबंधन थोड़ा गन्दा था, जबकि पायथन 3 में यूनिकोड स्ट्रिंग्स ( str ) और बाइट्स के अपरिवर्तनीय अनुक्रमों के बीच एक स्पष्ट अंतर है जो प्रतिनिधित्व कर सकता है या नहीं ASCII वर्ण ( bytes )।

http://docs.python.org/library/stdtypes.html#str.encode
http://docs.python.org/py3k/library/stdtypes.html#str.encode





hashlib