fixmint
FI

UUID v4 vai v7: mikä versio kannattaa valita ja miksi sillä on väliä

Kirjoittaja · · päivitetty 8. marraskuuta 2026 · 5 min lukuaika

Käytä UUID v4:ää, kun tarvitset satunnaisen tunnisteen eikä mitään muuta. Käytä UUID v7:ää, kun tunniste on tietokannan avain tai kun haluat tunnisteiden järjestyvän luontiajan mukaan. Molemmat ovat 128-bittisiä ja kirjoitetaan samaan 36-merkkiseen muotoon, joten ero on siinä, miten bitit on järjestetty. Alla oleva UUID-generaattori tekee kumpaa tahansa versiota selaimessasi, yhdellä kerralla 1–500 kappaletta.

UUID-generaattoriTarvitsen tunnisteita koodiinTee se ilmaiseksi

Miltä UUID näyttää

UUID eli universaalisti yksilöllinen tunniste on 128-bittinen luku, joka kirjoitetaan 32 heksadesimaalinumerona viidessä ryhmässä: 8, 4, 4, 4 ja 12 numeroa, väliviivoilla erotettuina. Esimerkki: 3f2b8c1e-6d4a-4f7b-9c2e-8a1d5e0b7f63.

Luvusta osa on kiinteitä. Neljä bittiä kertoo version, joten kolmas ryhmä alkaa numerolla 4 v4:lle tai numerolla 7 v7:lle. Kaksi bittiä kertoo varianttina, joten neljäs ryhmä alkaa numerolla 8, 9, a tai b. Muu osa kantaa itse tunnistetta. Version ja variantin bitit ovat syy siihen, miksi v4-UUID:ssa on 122 satunnaista bittiä eikä 128.

UUID v4: satunnainen

v4-UUID on satunnainen kiinteitä bittejä lukuun ottamatta. Sen 122 satunnaista bittiä tekevät toiston erittäin epätodennäköiseksi. Oletetaan, että luot miljardi v4-UUID:tä. Todennäköisyys sille, että jotkin kaksi osuvat yhteen, on likimain n neliö jaettuna mahdollisten arvojen kahdella kertaisella määrällä, mikä on noin 10 potenssiin miinus 19. Toisin sanoen törmäyksiä ei tarvitse suunnitella pois.

Tämä arvio olettaa, että generaattori ottaa bittinsä kryptografisesta satunnaislähteestä. Ennustettava generaattori heikentäisi arviota. Tämä työkalu käyttää selaimen kryptografista satunnaislähdettä, crypto.randomUUID- tai crypto.getRandomValues-rajapinnan kautta.

UUID v7: aika ensin

RFC 9562 määrittelee v7:n. Sen ensimmäiset 48 bittiä kertovat Unix-ajan millisekunteina, joten myöhemmin luodun tunnisteen ensimmäinen osa on suurempi kuin aiemmin luodun. Sen jälkeen tulevat versiobitit, satunnaisbitit, variantin bitit ja lisää satunnaisbittejä. Osa satunnaisalueesta voi kantaa laskuria, joka pitää tunnisteet järjestyksessä, kun useita luodaan samassa millisekunnissa.

Koska aika tulee ensin, v7-tunnisteet järjestyvät tekstinä lajiteltaessa luontiajan mukaan millisekuntitarkasti, kunhan kirjainkoko on yhtenäinen. Näin käy siksi, että heksadesimaalinumerot ovat kiinteän pituisia ja aika on alkumerkeissä.

Aika on myös näkyvissä. Kuka tahansa, joka lukee v7-UUID:n, näkee suunnilleen, milloin se on luotu. Voit tarkistaa tämän itse UUID-generaattorin Tarkista-kentällä, joka muuntaa ensimmäiset 48 bittiä takaisin päivämääräksi ja kellonajaksi.

Miksi v7 sopii tietokantaindekseihin

Tietokannan indeksi on yleensä B-puu, rakenne joka pidetään avaimen mukaan lajiteltuna. Kun avain on satunnainen, kuten v4:ssä, jokainen uusi rivi sijoittuu satunnaiseen kohtaan indeksissä. Tietokannan on silloin kirjoitettava moneen eri kohtaan indeksiä, mikä aiheuttaa enemmän sivujen jakamisia ja enemmän välimuistin ohituksia. Suuressa taulussa tämä työ kertyy.

v7-avain on lähes jokaista indeksissä jo olevaa avainta suurempi, koska sen aikaosa kasvaa. Uudet rivit lisätään indeksin loppuun, aivan kuten automaattisesti kasvava numero lisättäisiin. Viimeisimmät indeksisivut pysyvät muistissa ja kirjoitukset pysyvät siisteinä. Ero näkyy selvimmin suurissa, jatkuvasti kasvavissa tauluissa, ja pienessä taulussa sitä on vaikea huomata.

v4:n ja v7:n valinta

  • Tietokannan pääavaimet tai taulu, joka kasvaa ajan myötä: v7. Indeksi pysyy järjestyksessä.
  • Lokit, tapahtumat tai viestit, joita lajittelet usein ajan mukaan: v7, koska tunniste itsessään kantaa järjestyksen.
  • Julkiset tunnisteet, joissa luontiajan pitää pysyä piilossa: v4. v7-tunniste paljastaa, milloin se on luotu.
  • Monta laitetta, joiden kellot eivät ole luotettavia: sekä v4 että v7 pysyvät uniikkeina, koska satunnaisbitit hoitavat sen. Vain v7:n lajittelujärjestys riippuu siitä, että kellot ovat oikeassa.

Molemmat versiot ovat standardeja, mutta vanhemmat kirjastot tuntevat ehkä vain v4:n. RFC 4122 kuvasi versiot 1–5 monta vuotta. RFC 9562 julkaistiin toukokuussa 2024, se korvaa RFC 4122:n ja määrittelee versiot 6, 7 ja 8. Tarkista ennen kuin luotat siihen, että kirjastosi versio tukee v7:ää.

UUID:n tallentaminen

Tekstinä kirjoitettu UUID vie 36 merkkiä. Sen 16 tavua voi tallentaa binäärimuodossa, mikä vie paljon vähemmän tilaa. Monissa tietokannoissa on tähän natiivi UUID-tyyppi tai 16 tavun binäärisarake, ja se vertautuu tekstiä nopeammin.

Valitse yksi muoto ja pysy siinä. Isot kirjaimet, pienet kirjaimet, väliviivat ja aaltosulkeet ovat ihmiselle sama UUID, mutta tietokanta tai merkkijonovertailu voi pitää niitä eri arvoina. Generaattorin vaihtoehdot isot kirjaimet, ilman väliviivoja ja aaltosulkeet ovat olemassa järjestelmiä varten, jotka tarvitsevat juuri näitä muotoja.

UUID:tä ei koskaan käytetä salaisuutena

UUID on tunniste, ei salasana, istuntotunnus eikä pääsyavain. Se on tehty uniikiksi, ei arvaamattomaksi. v7-UUID kantaa myös luontiaikansa. Ja tunnisteita liitetään linkkeihin, lokeihin, sähköposteihin ja kuvakaappauksiin, joista kuka tahansa niitä näkevä voi käyttää niitä uudelleen.

Käyttöoikeuksien hallinta kuuluu palvelimelle. Henkilön, joka tuntee tunnisteen, ei pidä automaattisesti saada nähdä tai muuttaa tunnisteen nimeämää tietuetta. Salasanoihin, salalauseisiin tai tunnuksiin käytä salaisuuksien luomiseen tehtyä generaattoria. Salasanageneraattori tekee satunnaisia salasanoja tai sanoista koottuja salalauseita laitteellasi turvallisella satunnaisuudella ja arvioi niiden vahvuuden. Taustatietoja siitä, miksi pituus ja satunnaisuus ovat tärkeitä, löydät artikkelista vahvat salasanat ja entropia.

Työkalun käyttö

  1. Valitse versio 4 satunnaisille tunnisteille tai versio 7 tunnisteille, jotka järjestyvät ajan mukaan.
  2. Aseta määrä, 1–500 kerralla.
  3. Rastita isot kirjaimet tai ilman väliviivoja ja aaltosulkeita, jos koodisi vaatii tietyn muodon.
  4. Kopioi kaikki tai lataa lista .txt-tiedostona.
  5. Liitä mikä tahansa UUID Tarkista-kenttään nähdäksesi sen version, variantin ja v7:ssä siihen upotetun ajan.

Pikavastaukset

Onko v4-UUID uniikki? Käytännössä on. Sen 122 satunnaista bittiä tekevät toiston niin epätodennäköiseksi, ettei sen tarkistamiseen ole tarvetta.

Pitäisikö kaikkeen käyttää v7:ää? Ei aina. Käytä v7:ää tietokannan avaimiin ja kaikkeen, mitä lajitellaan ajan mukaan. Käytä v4:ää, kun luontiaika pitää pitää piilossa.

Voinko käyttää UUID:tä salasanana? Et. Se on tunniste. Käytä salasanageneraattoria kaikkeen, mikä pitää pysyä salaisena.

Lähettääkö työkalu tunnisteet minnekään? Ei. Tunnisteet luodaan ja näytetään selaimessasi, eikä niitä lähetetä palvelimelle.

Käännetty tekoälyn avulla: Englanninkielinen alkuperäisteos.

Kommentit

    Ei vielä kommentteja. Ole ensimmäinen.

    Arvosanasi (valinnainen)

    Sähköpostiosoitettasi ei näytetä eikä tallenneta.

    Kannen kuva: Open Data for AGI - Why Public, Free, and Open Datasets MatterOpen Data for AGI - Why Public, Free, and Open Datasets Matter

    Miksi julkiset, ilmaiset ja avoimet tietoaineistot muovaavat yleistä tekoälyä yhtä paljon kuin algoritmit ja laskentateho.

    $4.99Osta GumroadistaEnglanniksi