Voor betekenisloze gegevens zijn hashes van de tijd plus een zout altijd ijzersterk en kunnen ze niet gemakkelijk worden geraden (vergeef de Python, ik heb gehoord van dit Ruby-ding, maar ik heb het nooit in mijn handen gehouden):
>>> hashlib.md5(str(time.time()) + "!salt!").hexdigest()
'7a8b73fa7e0dadf246612e6001ede165'
Kort het in als je wilt:
>>> hashlib.md5(str(time.time()) + "!salt!").hexdigest()[:16]
'46ffb69ebc96412d'
Gebruik in plaats daarvan een geheel getal, als je wilt, maar de lengte kan variëren met deze code, tenzij je een nul-pad gebruikt:
>>> int(hashlib.md5(str(time.time()) + "!salt!").hexdigest()[:13], 16)
1346212029197308
In voor "zomg md5 is niet crypto-veilig":
>>> int(hashlib.sha256(str(time.time()) + "!salt!").hexdigest()[:13], 16)
1948411134966366
Verdorie, je hoeft niet eens tijd te gebruiken, je kunt een automatisch ophogend geheel getal gebruiken, zolang je het maar zout:
>>> int(hashlib.sha256(str(1) + "!salt!").hexdigest()[:13], 16)
1269883740611281
>>> int(hashlib.sha256(str(2) + "!salt!").hexdigest()[:13], 16)
3655373802716929
hasj. Is er iets dat ze niet kunnen doen?