Ist es möglich, für einen ASP.NET-Server die gleiche GUID, um mehr als ein Benutzer zu generieren?

StackOverflow https://stackoverflow.com/questions/272169

  •  07-07-2019
  •  | 
  •  

Frage

Ich habe den GUID Kollisionen gesehen Diskussionen aber wollten nur Ihre Gedanken darüber, ob es eine GUID Kollision, wenn beide Clients die gleiche Webseite, die genau zur gleichen Zeit, um die GUID erzeugt zugegriffen werden kann (- wahrscheinlich bis auf die Mikrosekunde)?

War es hilfreich?

Lösung

Es ist theoretisch möglich, aber sehr unwahrscheinlich.

Andere Tipps

Nein. Wenn das passiert eilen und ein Lotterielos kaufen!

Auf einem einzigen Server, nein, ist es nicht möglich. Version 4 Guids sind aus (unter anderem) von einer pseudo-zufälligen 54-Bit-Wert, und wie ich sie verstehe diejenigen, sie durch alle Werte vor der Wiederholung.

Wenn die Schaffung von mehr als einen Server, dann ist es möglich, einen guid Zusammenstoß zu haben, aber das ist sehr sehr unwahrscheinlich ist.

Siehe href="http://www.ietf.org/rfc/rfc4122.txt" rel="nofollow noreferrer"> RFC 4122

aus Wikipedia, der freien Enzyklopädie

A Globally Unique Identifier oder GUID (ausgesprochen / guːɪd / oder / gwɪd /) ist ein spezieller Typ von Identifikator in Softwareanwendungen verwendet, um eine Referenznummer zu schaffen, die in jedem Kontext eindeutig ist ( daher „Global“), beispielsweise bei der Festlegung die interne Referenz für eine Art von Zugangspunkt in einer Software-Anwendung oder für eindeutige Schlüssel in einer Datenbank. Während jedes GUID erzeugt wird nicht garantiert eindeutig, die Gesamtzahl der eindeutigen Schlüssel (2.128 oder 3,4 × 1038) ist so groß, dass die Wahrscheinlichkeit, mit der gleichen Anzahl zweimal erzeugt wird, sehr klein ist, . Betrachten wir zum Beispiel das beobachtbare Universum, das etwa 5 × 1022 Sterne enthält; jeder Stern könnte dann 6,8 × 1015 universell eindeutige GUIDs.

Wenn Sie viele, viele GUIDs erzeugen, dann Wahrscheinlichkeit einer Kollision wird immer recht hoch wegen Birthday Paradoxon . Theoretisch sollte GUID Kollision sehr unwahrscheinlich sein (naive Intuition), aber praktisch kommt es von Zeit zu Zeit.

Sicher, es ist Zeitverschwendung, diese Kollisionen programmatisch zu handhaben, aber Sie sollten noch Ihren Code in einer Art und Weise schreiben, dass, wenn es passiert, dann sollten Sie Ihr Code nicht laut, nicht leise und unerkannt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top