2015-01-15 13 views
5

Ich bin für Aussaat zufällige Zustände in der folgenden Art und Weise Hashing von Strings:deterministischer Hashing in Python 3

context = "string" 
seed = hash(context) % 4294967295 # This is necessary to keep the hash within allowed seed values 
np.random.seed(seed) 

Dies ist leider (für meine Nutzung) nicht-deterministisch zwischen den Läufen in Python 3.3 und höher. Ich weiß, dass ich die Umgebungsvariable PYTHONHASHSEED auf einen ganzzahligen Wert setzen konnte, um den Determinismus wiederzuerlangen, aber ich würde wahrscheinlich etwas bevorzugen, das sich ein bisschen weniger hacky anfühlt, und die durch Zufalls-Hashing hinzugefügte zusätzliche Sicherheit nicht völlig ignorieren. Vorschläge?

Antwort

5

Verwenden Sie eine speziell entwickelte Hash-Funktion. zlib.adler32() ist eine ausgezeichnete Wahl; Alternativ können Sie das Modul hashlib für weitere Optionen besuchen.

+0

Perfekt, danke! –