Est-il possible pour un serveur ASP.NET de générer le même GUID pour plusieurs utilisateurs?

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

  •  07-07-2019
  •  | 
  •  

Question

J'ai vu les collisions de GUID . discussions, mais je voulais juste savoir s’il pouvait y avoir une collision entre GUID si les deux clients accédaient à la même page Web générant le GUID exactement au même moment (- probablement jusqu’à la micro-seconde)?

Était-ce utile?

La solution

C'est théoriquement possible, mais hautement improbable.

Autres conseils

Non. Si cela se produit, achetez un billet de loterie à la hâte!

Sur un seul serveur, non, ce n'est pas possible. Les guides de la version 4 sont constitués (entre autres) d’une valeur pseudo-aléatoire de 54 bits et, si je comprends bien, ils parcourent toutes les valeurs avant de se répéter.

Si vous créez sur plusieurs serveurs, il est possible d'avoir une collision conflictuelle, bien que cela soit hautement improbable.

Consultez la RFC 4122 , plus précisément la section 4.1.5. Je crois que Windows moderne utilise des UUID v4.

Sur Wikipedia, l'encyclopédie gratuite

Un identificateur global unique ou GUID (prononcé / 'gu??d / ou / 'gw?d /) est un type d'identifiant spécial utilisé dans les applications logicielles afin de fournir un numéro de référence unique dans tous les contextes ( par conséquent, "Globalement"), par exemple, dans la définition de la référence interne pour un type de point d'accès dans une application logicielle, ou pour la création de clés uniques dans une base de données. Bien que chaque GUID généré ne soit pas unique, le nombre total de clés uniques (2128 ou 3,4 × 1038) est si important que la probabilité qu'un même nombre soit généré deux fois est très faible . Par exemple, considérons l'univers observable, qui contient environ 5 × 1022 étoiles; chaque étoile pourrait alors avoir 6,8 × 1015 GUID universellement uniques.

Si vous générez beaucoup de GUID, la probabilité de collision augmente avec Paradoxe d'anniversaire . Théoriquement, une collision GUID devrait être hautement improbable (intuition na nique), mais elle se produit pratiquement de temps en temps.

Bien sûr, gérer ces collisions par programmation est une perte de temps, mais vous devez tout de même écrire votre code de manière à ce que, le cas échéant, votre code échoue bruyamment, non discrètement et sans être détecté.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top