[Tutor] forcing hashlib to has string variables
Luke Paireepinart
rabidpoobear at gmail.com
Sun Sep 12 21:04:45 CEST 2010
Ah, it works differently on py3 i guess. Py2 was pretty lax with string handling. I would suggest researching Unicode encode functions rather than looking at the hashlib for info. There is probably a string.encode or something like that.
-----------------------------
Sent from a mobile device with a bad e-mail client.
-----------------------------
On Sep 12, 2010, at 1:54 PM, Rance Hall <ranceh at gmail.com> wrote:
> Luke:
>
> On python3.1 I get the following error using your (untested) two line snippet:
>
> TypeError: Unicode-objects must be encoded before hashing
>
> If I add the b back into the mix, I get a hash with no error messages.
>
> But I still can't quite figure out how to get the variable contents
> into the hashing function.
>
> On Sun, Sep 12, 2010 at 1:47 PM, Luke Paireepinart
> <rabidpoobear at gmail.com> wrote:
>> This is how I use it (untested)
>> Import hashlib
>> Print hashlib.md5("somestr").hexdigest()
>>
>> Works fine without using binary string.
>>
>>
>> On Sep 12, 2010, at 1:19 PM, Rance Hall <ranceh at gmail.com> wrote:
>>
>>> Everybody knows you don't store plain text passwords in a database,
>>> you store hashes instead
>>>
>>> consider:
>>>
>>> userpass = getpass.getpass("User password? ")
>>>
>>> encuserpass = hashlib.md5()
>>>
>>> encuserpass.update(userpass)
>>>
>>> del userpass
>>>
>>>
>>> Now the documentation clearly states that if you are hashing a string
>>> you need to covert it to bytes first with a line like this:
>>>
>>> encuserpass.update(b"text string here")
>>>
>>> The "b" in this syntax is a shortcut to converting the string to bytes
>>> for hasing purposes.
>>>
>>> which means that the first code snippet fails, since I didnt convert
>>> the variable contents to bytes instead of text.
>>>
>>> I didn't see an example that addresses hashing the string contents of
>>> a variable.
>>>
>>> Whats missing in the above example that makes hashing the contents of
>>> a string variable work?
>>> _______________________________________________
>>> Tutor maillist - Tutor at python.org
>>> To unsubscribe or change subscription options:
>>> http://mail.python.org/mailman/listinfo/tutor
>>
> _______________________________________________
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
More information about the Tutor
mailing list