Ich benutze Python 2.5 unter Linux, in mehreren parallelen FCGI-Prozessen. Ich verwenderandom.choice nicht zufällig
chars = string.ascii_letters + string.digits
cookie = ''.join([random.choice(chars) for x in range(32)])
, um unterschiedliche Cookies zu generieren. Unter der Annahme, dass der RNG aus/dev/urandom ausgesät wird und dass die Sequenz der Zufallszahlen vom Mersenne Twister kommt, würde ich erwarten, dass es praktisch keine Kollisionswahrscheinlichkeit gibt.
Allerdings sehe ich regelmäßige Kollisionen, obwohl nur wenige (< 100) Benutzer zu jeder Zeit angemeldet sind.
Warum sind die Zufallszahlen nicht zufälliger?
Was sind Zeichen? Wenn Sie dort ein einzelnes Zeichen haben, haben Sie immer Kollisionen (um den Punkt zu verdeutlichen) –
Wie lang ist die Zeichenliste? –
Ich habe jetzt meine Definition von Zeichen hinzugefügt - es ist kein einzelnes Zeichen, hat aber 62 Auswahlmöglichkeiten. –