python - must - ¿Cómo corregir el error de codificación Unicode usando el módulo hashlib?
python md5 file (1)
pwdinput = input("Now enter a password:").encode(''utf-8'') # or whatever encoding you wish to use
Suponiendo que está utilizando Python 3, esto convertirá la cadena Unicode devuelta por input()
en un objeto bytes
codificado en UTF-8, o cualquier codificación que desee utilizar. Las versiones anteriores de Python sí lo tienen, pero su manejo de cadenas Unicode vs. no Unicode era un poco complicado, mientras que Python 3 tiene una distinción explícita entre cadenas Unicode ( str
) y secuencias inmutables de bytes que pueden o no representar Caracteres ASCII ( bytes
).
http://docs.python.org/library/stdtypes.html#str.encode
http://docs.python.org/py3k/library/stdtypes.html#str.encode
Después de varias búsquedas, no he podido determinar cómo evitar un error que dice: "Los objetos Unicode deben codificarse antes del hash" al usar este código:
pwdinput = input("Now enter a password:")
pwd = hashlib.sha1()
pwd.update(pwdinput)
pwd = pwd.hexdigest()
¿Cómo puedo superar ese error? ¿Cómo se codifican los objetos Unicode?