[Python-Dev] Accepting PEP 456 (Secure hash algorithm)
Christian Heimes
christian at python.org
Wed Nov 20 12:54:08 CET 2013
Am 20.11.2013 12:41, schrieb Victor Stinner:
> 2013/11/20 Victor Stinner <victor.stinner at gmail.com>:
>> It looks like dict, set and frozenset representation (repr(...))
>> now depends on the platform (probably 32 bit vs 64 bit), even if
>> PYTHONHASHSEED is set. I don't know if it's an issue or not.
>
> In Python 3.3, repr(set("abcd")) with PYTHONHASHSEED=0 always give
> "{'a', 'c', 'b', 'd'}" on 32 bit and 64 bit platforms.
>
> In Python 3.4, repr(set("abcd")) with PYTHONHASHSEED=0 now gives
> "{'b', 'a', 'c', 'd'}" on 32 bit.and "{'a', 'b', 'c', 'd'}" on 64
> bit.
I have fixed the problem in
http://hg.python.org/cpython/rev/961d832d8734 . My attempt to mix the
hash's MSB into LSB for 32 bit builds was the culprit. It should be
secure enough without the op.
More information about the Python-Dev
mailing list