Dans quelle mesure est-il sûr d'utiliser l'UUID pour identifier quelque chose de façon unique (je l'utilise pour les fichiers téléchargés sur le serveur) ? Si je comprends bien, il est basé sur des nombres aléatoires. Cependant, il me semble qu'avec le temps, il finira par se répéter, par pur hasard. Existe-t-il un meilleur système ou un modèle quelconque pour pallier à ce problème ?
J'aime cette partie de Wikipedia : Cependant, ces probabilités ne tiennent que lorsque les UUID sont générés en utilisant une entropie suffisante. Dans le cas contraire, la probabilité de doublons pourrait être sensiblement plus élevée, car la dispersion statistique pourrait être plus faible. Alors quelle est la probabilité réelle de duplicata en notant cette phrase. Nous ne pouvons pas créer de véritables nombres aléatoires sur ordinateur, n'est-ce pas ?
22 votes
Pour une valeur suffisamment grande de "suffisamment de temps" :)
134 votes
"A quel point l'UUID est-il unique ?" Universellement unique, je crois. ;)
45 votes
Et à moins que vous ne prévoyiez de développer sur Vénus, un GUID devrait suffire.
22 votes
"unique" signifie n'entrent jamais en collision . S'il y a un risque de collision, ce n'est pas unique . Par conséquent, par définition, l'UUID n'est pas unique et n'est sûr que si vous êtes préparé à des collisions potentielles, indépendamment de la probabilité de collisions. Sinon, votre programme est tout simplement incorrect. Vous pouvez dire que l'UUID est "presque unique" mais cela ne signifie pas qu'il est "unique".
7 votes
Les UUID sont uniques "à des fins pratiques" - le fait qu'il y ait une chance infinitésimale qu'une valeur en double soit générée ne rend pas les programmes qui s'appuient sur cela incorrects, sauf dans la situation très rare où le volume d'ID générés commence à rendre cette possibilité statistiquement significative.
0 votes
Un tableau avec plus de chiffres peut être trouvé sur la page wikipedia de Birthday attack. fr.wikipedia.org/wiki/Birthday_attack#Mathematics (Les UUID ont 128 bits). Si 128 bits ne suffisent toujours pas, vous pouvez toujours en générer d'autres et les assembler ; c'est complètement inutile, mais c'est possible.
3 votes
@eonil Les UUID (version 1) ne peuvent pas entrer en collision si vous les créez correctement. Ils comportent quelques octets utilisés pour identifier de manière unique votre ordinateur - 48 bits pour être exact. Ces octets sont configurés manuellement, ou créés à partir de l'adresse MAC. En plus de cela, ils disposent d'une minuterie avec un incrément de 0,0001 seconde. Si vous prévoyez de créer plus de 10000000 UUID par seconde, il y a 13 bits supplémentaires disponibles pour un numéro de série. Bien sûr, dans de nombreux cas, les 61 bits (48+13) réservés à l'ID du nœud et au numéro de série peuvent entrer en collision si vous utilisez des nombres aléatoires au lieu de faire attention.