Universelt entydig identifikator
for begge varianter 1 og 2 er fem “versioner” defineret i standarderne, og hver version kan være mere passende end de andre i specifikke brugssager. Version er angivet med M
i strengrepræsentationen.
Version-1 UUID ‘er genereres fra et tidspunkt og et node-ID (normalt MAC-adressen); version-2 UUID’ er genereres ud fra en identifikator( normalt en gruppe eller bruger-ID), tid og et node-ID; versioner 3 og 5 producerer deterministiske UUID ‘ er genereret ved hashing af et navneområde-id og navn; og version – 4 UUID ‘ er genereres ved hjælp af et tilfældigt eller pseudo-tilfældigt tal.
Nil UUIDEdit
“nil” UUID, et specielt tilfælde, er UUID 00000000-0000-0000-0000-000000000000
; det vil sige alle bits indstillet til nul.
Version 1 (Dato-tid og MAC-adresse)Rediger
Version 1 sammenkæder 48-bit MAC-adressen til “node” (det vil sige computeren, der genererer UUID), med en 60-bit tidsstempel, der er antallet af intervaller på 100 nanosekund siden midnat 15.oktober 1582 Koordineret Universal Time (UTC), den dato, hvor den gregorianske kalender først blev vedtaget. RFC 4122 angiver, at tidsværdien ruller over omkring 3400 AD,: 3 afhængigt af den anvendte algoritme, hvilket indebærer, at 60-bit tidsstemplet er en underskrevet mængde. Libuuid-biblioteket, behandler tidsstemplet som usigneret og sætter rollover-tiden i 5236 e.kr. Rollover-tiden som defineret af ITU-T Rec. 667 er 3603 e.kr.: v
en 13 – eller 14-bit “unik” ursekvens udvider tidsstemplet for at håndtere tilfælde, hvor processoruret ikke går hurtigt nok, eller hvor der er flere processorer og UUID-generatorer pr. Når UUID ‘ er genereres hurtigere, end systemuret kunne gå videre, kan de nederste bits i tidsstempelfelterne genereres ved at øge det hver gang et UUID genereres for at simulere et tidsstempel med høj opløsning. Med hver version 1 UUID svarende til et enkelt punkt i rummet (noden) og tiden (intervaller og ursekvens) er chancen for, at to korrekt genererede version-1 UUID ‘ er utilsigtet er de samme, praktisk talt nul. Da tid og ur sekvens i alt 74 bits, 274 (1.8 1022 eller 18 sekstillion) version-1 UUIDs kan genereres pr node ID, med en maksimal gennemsnitlig hastighed på 163 milliarder per sekund pr node ID.
i modsætning til andre uuid-versioner er version-1 og -2 UUID ‘ er baseret på MAC-adresser fra netværkskort til dels afhængige af en identifikator udstedt af en central registreringsmyndighed, nemlig den organisatorisk unikke identifikator (OUI) del af MAC-adressen, som udstedes af IEEE til producenter af netværksudstyr. Det unikke ved version – 1 og version-2 UUID ‘ er baseret på MAC-adresser til netværkskort afhænger også af, at netværkskortproducenter korrekt tildeler unikke MAC-adresser til deres kort, som ligesom andre fremstillingsprocesser er underlagt fejl.
brug af nodens netværkskort MAC-adresse til node-ID betyder, at en version-1 UUID kan spores tilbage til den computer, der oprettede den. Dokumenter kan undertiden spores til de computere, hvor de blev oprettet eller redigeret gennem UUID ‘ er indlejret i dem ved hjælp af tekstbehandlingsprogrammer. Dette privatlivshul blev brugt, når man lokaliserede skaberen af Melissa-virussen.
RFC 4122 tillader, at MAC-adressen i en version-1 (eller 2) UUID erstattes af et tilfældigt 48-bit node-ID, enten fordi noden ikke har en MAC-adresse, eller fordi det ikke er ønskeligt at udsætte den. I så fald kræver RFC, at den mindst signifikante bit af den første oktet af node-ID ‘ et skal indstilles til 1. Dette svarer til multicast-bit i MAC-adresser, og indstilling tjener til at differentiere UUID ‘er, hvor node-ID’ et tilfældigt genereres fra UUID ‘ er baseret på MAC-adresser fra netværkskort, som typisk har unicast MAC-adresser.
Version 2 (dato-tid og MAC-adresse, DCE security version)Rediger
RFC 4122 reserver version 2 for “DCE security” UUIDs; men det giver ikke nogen detaljer. Af denne grund udelader mange uuid-implementeringer version 2. Specifikationen af version – 2 UUID ‘ er leveres dog af DCE 1.1-godkendelses-og Sikkerhedstjenestespecifikationen.
Version-2 UUID ‘ er ligner version 1, bortset fra at de mindst signifikante 8 bit af ursekvensen erstattes af et “lokalt domæne” – nummer, og de mindst signifikante 32 bit af tidsstemplet erstattes af en heltalsidentifikator, der er meningsfuld inden for det specificerede lokale domæne. Lokale domænenumre 0 og 1 er henholdsvis bruger-id ‘er (UID’ er) og gruppe-id ‘er (Gid’ er), og andre lokale domænenumre er steddefinerede. På ikke-Posis-systemer er alle lokale domænenumre steddefinerede.
evnen til at inkludere et 40-bit domæne/identifikator i UUID kommer med en afvejning. På den ene side tillader 40 bits omkring 1 billioner domæne/identifikatorværdier pr. På den anden side, med urværdien afkortet til de 28 mest betydningsfulde bits sammenlignet med 60 bits i version 1, vil uret i en version 2 UUID “kryds” kun en gang hvert 429,49 sekund, lidt mere end 7 minutter, i modsætning til hver 100 nanosekunder til version 1. Og med en ursekvens på kun 6 bit, sammenlignet med 14 bit i version 1, kan kun 64 unikke UUID ‘ er pr.node/domæne/identifikator genereres pr. 7-minutters ur-kryds sammenlignet med 16.384 ursekvensværdier for version 1. Således er Version 2 muligvis ikke egnet til tilfælde, hvor UUID ‘ er kræves pr.node/domæne/identifikator med en hastighed, der overstiger CA. et hvert syvende sekund.
version 3 og 5 (namespace name-based)Edit
Version-3 og version-5 UUID ‘ er genereres ved at hashing et navneområde id og navn. Version 3 bruger MD5 som hashingalgoritme, og version 5 bruger SHA-1.
navneområdeidentifikatoren er i sig selv et UUID. Specifikationen giver UUID ‘er til at repræsentere navneområderne for URL’ er, fuldt kvalificerede domænenavne, objektidentifikatorer og 500 fornemme navne; men ethvert ønsket UUID kan bruges som navneområdebetegnelse.
for at bestemme version-3 UUID svarende til et givet navneområde og navn, omdannes uuid for navneområdet til en streng bytes, sammenkædet med inputnavnet og derefter hashet med MD5, hvilket giver 128 bit. Derefter erstattes 6 eller 7 bits med faste værdier, 4-bit versionen (f. eks. 00112 for version 3), og 2 – eller 3-bit UUID “variant” (f.eks 102 angiver en RFC 4122 UUIDs, eller 1102 angiver en ældre Microsoft GUID). Da 6 eller 7 Bit er således forudbestemt, bidrager kun 121 eller 122 bit til uuidens unikke karakter.
Version-5 UUIDs er ens, men SHA-1 bruges i stedet for MD5. Da SHA-1 genererer 160-bit fordøjelser, afkortes fordøjelsen til 128 bit, før version-og variantbitene udskiftes.
Version-3 og version-5 UUID ‘ er har den egenskab, at det samme navneområde og navn vil kortlægge til det samme UUID. Imidlertid kan hverken navneområdet eller navnet bestemmes ud fra UUID, selvom en af dem er specificeret, undtagen ved brute-force-søgning. RFC 4122 anbefaler version 5 (SHA-1) over version 3 (MD5) og advarer mod brug af UUID ‘ er af begge versioner som sikkerhedsoplysninger.
Version 4 (tilfældig)Rediger
en version 4 UUID genereres tilfældigt. Som i andre UUID ‘ er bruges 4 bits til at indikere version 4 og 2 eller 3 bits til at indikere varianten (102 eller 1102 for henholdsvis varianter 1 og 2). For variant 1 (det vil sige de fleste UUID ‘er) vil en tilfældig version-4 UUID således have 6 forudbestemte variant-og versionsbits, hvilket efterlader 122 bits til den tilfældigt genererede del, i alt 2122 eller 5,3 liter 1036 (5,3 undecillion) mulig version-4 variant-1 UUID’ er. Der er halvt så mange mulige version-4 variant-2 UUIDs (legacy GUIDs), fordi der er en færre tilfældig bit tilgængelig, 3 bit forbruges til varianten.
Leave a Reply