← Kaikki työkalut

UUID-generaattori (v4 GUID)

Luo satunnaisia v4 UUID-tunnisteita (GUID) heti selaimessasi. Opi, mikä 128-bittinen UUID on, miten versiot eroavat ja milloin niitä käytetään.

Mikä UUID oikeastaan on

UUID, lyhenne sanoista Universally Unique Identifier, on 128-bittinen arvo, jota käytetään jonkin merkitsemiseen kysymättä keneltäkään lupaa etukäteen. Saatat nähdä sen myös nimellä GUID, Globally Unique Identifier, mikä on yksinkertaisesti nimi, jonka Microsoft antoi samalle idealle Windowsin ja .NET-maailman sisällä. Nämä kaksi termiä kuvaavat samaa 128-bittistä lukua lähes kaikissa tilanteissa, joissa sillä on merkitystä, joten kun kollega sanoo GUID ja sinä sanot UUID, puhutte lähes aina täsmälleen samasta asiasta.

Nuo 128 bittiä kirjoitetaan tavallisesti 32 heksadesimaalimerkkinä, jotka on jaettu viiteen ryhmään yhdysmerkeillä, kaavassa 8-4-4-4-12. Tyypillinen arvo näyttää tältä: 123e4567-e89b-12d3-a456-426614174000. Yhdysmerkeillä itsessään ei ole merkitystä; ne ovat olemassa vain, jotta ihminen voi lukea arvon menettämättä paikkaansa. Jokainen merkki on heksadesimaalinumero väliltä 0–f, minkä vuoksi UUID tuntuu tiheämmältä kuin tavallinen luku, vaikka se pinnan alla onkin vain yksi hyvin suuri kokonaisluku.

Abstrakti hehkuva heksadesimaalinen tunnus, joka edustaa ainutlaatuista 128-bittistä tunnistetta tummansinisellä taustalla
UUID on yksi 128-bittinen luku, kirjoitettuna 32 heksadesimaalimerkkinä viidessä yhdysmerkillä erotetussa ryhmässä.

Versiot, ja miksi v4 voittaa

Standardi määrittelee useita versioita, ja ne eroavat siinä, miten bitit täytetään. Versio 1 on aikaan perustuva: se kutoo yhteen nykyisen aikaleiman ja koneen verkon MAC-osoitteen. Tämä tekee v1-arvoista lajiteltavissa luontiajan mukaan, mutta se myös vuotaa tietoa siitä, missä ja suunnilleen milloin ne luotiin, mikä ei ole aina toivottavaa. Versiot 3 ja 5 ovat nimipohjaisia, ne tiivistävät nimiavaruuden ja nimen niin, että sama syöte tuottaa aina saman tunnisteen.

Versio 4 kulkee täysin eri reittiä. Se on lähes puhdasta satunnaisuutta. 128 bitistä kuusi on varattu merkitsemään versio ja variantti, jolloin 122 bittiä jää täytettäväksi satunnaisella datalla. Ei aikaleimaa, ei MAC-osoitetta, ei nimiavaruutta, vain kohinaa. Juuri siksi useimmat generaattorit, tämä mukaan lukien, tuottavat v4:n oletuksena. Se ei paljasta mitään laitteesta tai luontihetkestä, eikä se vaadi minkäänlaista koordinointia sen luovien osapuolten välillä. Tämän sivun työkalu toimii kokonaan selaimessasi, joten satunnaisarvot eivät koskaan poistu koneeltasi.

Kuinka epätodennäköinen törmäys oikeasti on

Järkevä huoli on, että kaksi satunnaista UUID:tä voisivat jonain päivänä olla identtiset. 122 satunnaisella bitillä mahdollisten v4-arvojen avaruus on 2 potenssiin 122, mikä on karkeasti 5,3 ja perässä 36 nollaa. Inhimillisin sanoin: sinun täytyisi luoda miljardeja UUID:tä joka sekunti vuosikymmenten ajan ennen kuin edes yhden kaksoiskappaleen todennäköisyys nousisi mihinkään mitattavaan. Standardi itse kuvailee törmäyksen mahdollisuutta niin lähellä nollaa, että se on merkityksetön. Käytännössä tiimit kohtelevat v4:ää ainutlaatuisena ja jatkavat eteenpäin, ja he ovat oikeassa.

Lukemattomia erillisiä hehkuvia avaimia leijuu valtavassa tummassa avaruudessa ilman kaksoiskappaleita, syaanin ja kullan sävyjä
Mahdollisten v4-arvojen joukko on niin valtava, että törmäykset ovat käytännössä mahdottomia.

Mihin kehittäjät niitä tarvitsevat

Koska ainutlaatuisuus ei vaadi keskitettyä auktoriteettia, UUID:t loistavat paikoissa, joissa koordinointi on kallista tai mahdotonta. Ne sopivat luontevasti tietokannan pääavaimiksi, varsinkin kun useat palvelut lisäävät rivejä eikä voida pysähtyä kysymään jaetulta laskurilta seuraavaa numeroa. Hajautetuissa järjestelmissä kaksi solmua planeetan vastakkaisilla puolilla voivat molemmat luoda tunnisteita täsmälleen samalla hetkellä koskaan törmäämättä. Ne myös tehostavat API:en idempotenssiavaimia, joissa asiakas liittää UUID:n pyyntöön, jotta palvelin voi turvallisesti jättää huomiotta kaksoiskappaleen, jos verkko yrittää uudelleen. Istuntotunnukset, tiedostonimet, tapahtumatunnukset ja viestiavaimet nojaavat kaikki samaan ominaisuuteen.

UUID versus automaattisesti kasvava tunniste

Klassinen vaihtoehto on automaattisesti kasvava kokonaisluku: 1, 2, 3, ja niin edelleen. Peräkkäiset tunnisteet ovat kompakteja, lajittuvat luonnollisesti ja ovat helppoja lukea, mutta niillä on todellisia haittoja. Ne paljastavat, kuinka monta tietuetta on olemassa, ja antavat ulkopuolisten arvata naapuriarvoja, ja ne pakottavat jokaisen lisäyksen yhden laskurin läpi, mikä muodostaa pullonkaulan, kun tietokantaa jaetaan tai dataa yhdistetään monista lähteistä. UUID:t ratkaisevat nämä ongelmat antamalla minkä tahansa osapuolen luoda avaimen itsenäisesti ja paljastamatta mitään määrästä tai järjestyksestä. Hintana on koko ja hieman heikompi lokaalisuus indekseissä. Järjestelmille, jotka skaalautuvat laajalle tai joiden täytyy piilottaa sisäinen rakenteensa, tämä kauppa on yleensä tekemisen arvoinen. Voit tutustua tähän ja vastaaviin apuvälineisiin kaikki generaattorit -kokoelmamme kautta, tai selata laajempaa kehittäjätyökalujen valikoimaa vastaavien rakennuspalikoiden löytämiseksi.

Usein kysytyt kysymykset

Onko GUID sama asia kuin UUID?

Käytännön tarkoituksiin, kyllä. GUID on Microsoftin nimi samalle 128-bittiselle tunnisteelle. Ainoa todellinen ero on tavujärjestys raakabinäärimuodossa joillakin Windows-järjestelmillä; merkkijonomuodossa ne ovat identtisiä ja keskenään vaihdettavissa.

Minkä UUID-version tämä työkalu luo?

Se luo version 4, satunnaisen variantin. Sen 128 bitistä 122 täytetään satunnaisella datalla, mikä tekee jokaisesta arvosta äärimmäisen epätodennäköisen toistua ja tarkoittaa, ettei se kanna mukanaan aikaleimaa tai laitetietoa.

Voiko kaksi UUID:tä koskaan olla samat?

Teoriassa todennäköisyys ei ole täsmälleen nolla, mutta noin 5,3 kertaa 10 potenssiin 36 mahdollisen v4-arvon kanssa se on niin pieni, että sitä pidetään merkityksettömänä. Sinun täytyisi luoda niitä tähtitieteellinen määrä ennen kuin törmäyksestä tulisi todennäköinen.

Miksi käyttää UUID:tä automaattisesti kasvavan numeron sijaan?

UUID:t voidaan luoda itsenäisesti minkä tahansa palvelun toimesta ilman jaettua laskuria, ne eivät paljasta tietueiden määrää tai järjestystä, ja ne tekevät datan yhdistämisestä monista lähteistä vaivatonta. Automaattisesti kasvavat tunnisteet ovat pienempiä, mutta niistä tulee pullonkaula ja ne vuotavat tietoa laajassa mittakaavassa.

Luodaanko UUID:t palvelimella?

Ei. Tämä työkalu toimii kokonaan selaimessasi, joten satunnaisarvot tuotetaan paikallisesti eikä niitä koskaan lähetetä minnekään. Tämä tekee siitä turvallisen käyttää avaimille ja tunnuksille, jotka haluat pitää yksityisinä.

Mitä yhdysmerkkikaava tarkoittaa?

8-4-4-4-12-ryhmittely on vain luettavuuskäytäntö. Yhdysmerkit eivät kanna dataa; ne jakavat 32 heksadesimaalimerkkiä lohkoihin, jotta ihmiset voivat silmäillä ja vertailla arvoja helpommin.