Ich sehe einige Implementierungen der einzigartigen String-Generierung für Dinge wie hochgeladene Bildnamen, Sitzungs-IDs, usw., und viele von ihnen verwenden die Verwendung von Hashes wie SHA1 oder andere.Python - Warum etwas anderes als uuid4() für eindeutige Strings verwenden?
Ich frage nicht die Legitimität der Verwendung von benutzerdefinierten Methoden, sondern nur der Grund. Wenn ich eine eindeutige Zeichenfolge möchte, sage ich einfach folgendes:
>>> import uuid
>>> uuid.uuid4()
UUID('07033084-5cfd-4812-90a4-e4d24ffb6e3d')
Und ich bin damit fertig. Ich war nicht sehr vertrauensvoll, bevor ich auf UUID lesen, so dass ich tat dies:
>>> import uuid
>>> s = set()
>>> for i in range(5000000): # That's 5 million!
>>> s.add(str(uuid.uuid4()))
...
...
>>> len(s)
5000000
Nicht ein Repeater (ich würde man jetzt nicht erwarten, dass angesichts der Chancen sind wie 1.108e + 50, aber es ist beruhigend zu Sehen Sie es in Aktion). Sie könnten sogar die Hälfte der Chancen durch nur Ihre Zeichenfolge durch die Kombination 2 uuid4()
s.
Also, mit dem gesagt, warum Menschen verbringen Zeit auf Random() und andere Sachen für einzigartige Saiten, etc? Gibt es ein wichtiges Sicherheitsproblem oder anderes bezüglich Uuid?
BTW, verdoppelt die Länge der Uuid würde die Anzahl der möglichen Werte, nicht nur verdoppeln. –