Des Questions sur GUID: Sont-ils toujours de longueur fixe, et est le moyen numéro 4?
Je viens généré quelques millions de GUID est transformé en une Chaîne de caractères et a obtenu la longueur... c'est toujours la même. Puis-je compter sur cette longueur fixe de la GUID lors de la conversion en Chaîne de caractères?
Aussi, est le nombre moyen de le GUID toujours "4" comme le montre cette capture d'écran?
Vous ne pouvez compter que sur ce que la spec dit à propos de l'GUID. Si les spécifications ne mentionne pas une chaîne de longueur fixe de la représentation, alors ne comptez pas sur elle.
Le 8-4-4-4-12 est le format standard, à la fois avec les états membres et l'OSF. MS docs dire de Guid.ToString() "La valeur de ce Guid, formaté comme suit: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Ok, alors vous êtes bon.
Le 8-4-4-4-12 est le format standard, à la fois avec les états membres et l'OSF. MS docs dire de Guid.ToString() "La valeur de ce Guid, formaté comme suit: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Ok, alors vous êtes bon.
OriginalL'auteur random65537 | 2010-09-18
Vous devez vous connecter pour publier un commentaire.
Oui, la longueur est fixe et oui, le nombre moyen est toujours de 4 lorsque vous utilisez la norme tostring format.
Certains des bits de GUID (connu comme un UUID presque n'importe où ce n'est pas windows) sont fixes pour indiquer des choses comme la version etc..
http://en.wikipedia.org/wiki/Uuid
MODIFIER
Je dois ajouter que le "4" s'applique uniquement à ceux qui ont été générés selon le Guid.NewGuid algorithme mis en œuvre .NET. Il n'y a rien pour vous empêcher de prendre n'importe quel octet[16] et de le convertir en Guid. Donc, vous ne pouvez banque sur 4 pour la mise en œuvre actuelle de l'algorithme .Net. Si vous obtenez Guid provenant d'une autre source, vous ne pouvez pas la banque sur la 4. Une mise à jour .Net ou éventuellement de windows(en fonction de si .Net utilise son propre ou Windows générateur) peut modifier les numéros fixes de l'GUID
par exemple, ce qui suit est entièrement code de travail et n'aura pas le 4 en position:
Si vous affiche le GUID comme en base 10 du nombre, il ne serait pas un 4, dans cette position, toujours. Rappelez-vous, cela serait fou, c'est juste que vous POURRIEZ.
pour raccourcir la longueur de la corde, un semi - commune truc est de faire une conversion en base 64, auquel cas la chaîne n'aurait pas les 4 en position, il masque les valeurs fixes. par exemple: Convertir.ToBase64String(guid.ToByteArray());
Leonardo - la Base64 GUID ont toujours la même longueur?
MakerOfThings7: un GUID est, par définition, 128 bits. Toute raisonnable algorithme pour convertir une chaîne de caractères sera toujours générer des chaînes de même longueur.
OriginalL'auteur Jim L
De la documentation sur Guid.ToString (sans paramètres):
Donc la réponse est "oui", il toujours être de la même longueur.
Que pour le 4, c'est un numéro de version (selon http://en.wikipedia.org/wiki/Uuid). Chaque GUID que vous générez avec l'algorithme de 4 dans cette position, mais les plus âgés Guid aura un 1, 2, ou 3. L'avenir pourrait avoir un 5 ou quelque chose de plus élevé.
OriginalL'auteur Gabe
Pas - un GUID n'a pas à être un type 4 UUID en fait, de nombreux GUID sous windows sont les UUID de TYPE 1.
De Type 1 prend la primaire MAC, une horloge et une séquence. Cela en fait des "Fuites" de données depuis tous les UUID1s qui sont créés sur le même système sera le même MAC. C'est pourquoi la plupart GUID fonctions qui vont prendre ces données et de hachage et de le transformer en une base de hachage UUID
OriginalL'auteur Dominik Weber