开发者

How to fix Unicode encode error using the hashlib module?

开发者 https://www.devze.com 2023-03-20 14:32 出处:网络
After multiple searches I have not been able to determine how to avoid an error stating: \"Unicode-objects must be encoded before hashing\" when using this code:

After multiple searches I have not been able to determine how to avoid an error stating: "Unicode-objects must be encoded before hashing" when using this code:

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

How can I get past that 开发者_如何学JAVAerror? How do you encode Unicode-objects?


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

Assuming you're using Python 3, this will convert the Unicode string returned by input() into a bytes object encoded in UTF-8, or whatever encoding you wish to use. Previous versions of Python do have it as well, but their handling of Unicode vs. non-Unicode strings was a bit messy, whereas Python 3 has an explicit distinction between Unicode strings (str) and immutable sequences of bytes that may or may not represent ASCII characters (bytes).

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

0

精彩评论

暂无评论...
验证码 换一张
取 消