Genereeri UUID-d (v1, v4, v5, v7)
- Töölaud
- Dokumentatsioon
- API
Miks kasutada UUID-sid?
UUID-d (Universally Unique Identifiers) on kordumatud identifikaatorid, mida kasutatakse ainulaadsuse tagamiseks erinevates süsteemides ja andmebaasides, ilma et oleks vaja keskset koordineerimist. Neid kasutatakse tavaliselt hajutatud süsteemides ja veebirakendustes ressursside kordumatute identifikaatorite loomiseks.
Toetatud UUID versioonid
See tööriist toetab järgmisi UUID versioone:
- 1. versioon: ajatempli ja MAC-aadressi alusel.
- Versioon 4: juhuslikult loodud (enimkasutatav).
- Versioon 5: põhineb nimeruumi ja nime SHA-1 sõrmejäljel (deterministlik: sama nimeruum + nimepaar tekitab alati sama UUID-i).
- Versioon 7: ajaliselt järjestatud, soovitatav tänapäevaste andmebaasi esmaste võtmete jaoks (leksikograafiline sortimine = kronoloogiline sortimine).
UUID v5: nimeruum ja nimi
V5 UUID genereerimiseks peate valima standardse nimeruumi ja andma nime:
- DNS: kasutamiseks, kui nimi on domeeninimi (nt
cdrn.fr). - URL: kasutamiseks siis, kui nimi on URL (näiteks
https://cdrn.fr/). - OID: kasutage, kui nimi on ISO objekti identifikaator.
- X500: kasutage, kui nimi on X.500 eristav nimi.
Kuna genereerimine on deterministlik, sobib UUID v5 eriti stabiilsetest andmetest reprodutseeritavate identifikaatorite tootmiseks.
Kuidas luua UUID-sid
Avalehel saate UUID-sid genereerida, valides rippmenüüst soovitud versiooni ja klõpsates genereerimise nuppu. Versiooni 5 puhul esitage ka nimeruum ja nimi.
Niipea kui UUID on loodud, kuvatakse see rohelisel tulemuste real, mis näitab, et selle genereerimine õnnestus. Vea ilmnemisel kuvatakse punane joon vastava veateate.
Koodinäited loodud UUID-de kasutamiseks
Saate kasutada loodud UUID-sid oma rakendustes, integreerides need otse oma koodi. Siin on näide PHP-s:
toString() . PHP_EOL;
kaja "UUID v5: ". $uuidV5->toString() . PHP_EOL;
kaja "UUID v7: ". $uuidV7->toString() . PHP_EOL;
?>
UUID-de kinnitamine ja analüüsimine
Samuti saate olemasolevaid UUID-sid kinnitada ja analüüsida, et teha kindlaks nende versioon ja kehtivus. Siin on näide PHP-koodist:
getFields()->getVersion();
} muu {
kaja "Vigane UUID";
}
?>
Korduma kippuvad küsimused
Mis vahe on UUID v1, v4, v5 ja v7 vahel?
v1 ühendab ajatempli ja masina MAC-aadressi, mis võib paljastada tundlikku teavet. v4 on täiesti juhuslik (122 juhuslikku bitti), see on enimkasutatav versioon. v5 on deterministlik: sama nimeruum + nimepaar tekitab tänu SHA-1 räsile alati sama UUID-i. v7 sisaldab identifikaatori alguses ajatemplit millisekundites, mistõttu on see kronoloogiliselt sorteeritud ja sobib esmaste võtmete jaoks ideaalselt.
Milline on v4 UUID kokkupõrke tõenäosus?
V4 UUID-l on 122 juhuslikku bitti ehk ligikaudu 5,3 × 10^36 võimalikud väärtused. 50% kokkupõrke tõenäosuse saavutamiseks (sünnipäeva paradoks) tuleks genereerida ligikaudu 2,7 × 10^18 UUID. Praktikas on tavarakendusel kokkupõrke tõenäosus tühine. See võimaldab genereerida kliendipoolseid identifikaatoreid ilma keskserveriga kooskõlastamata.
Miks kasutada andmebaasi primaarvõtme jaoks UUID v7?
B-puu indeksisse sisestatud UUID v4 põhjustab tugevat killustumist: iga sisestus langeb juhuslikku asukohta, mis halvendab jõudlust ja vahemälu kasutamist. UUID v7 algab ajatempliga millisekundites, nii et uued read lisatakse alati indeksi lõppu. Seejärel läheneb sisestamise jõudlus BIGSERIAL-ile, säilitades samas universaalse identifikaatori eelised.
Milleks kasutatakse UUID v5 nimeruume DNS, URL, OID ja X500?
Need nimeruumid on RFC 4122-s eelmääratletud UUID-id, mis toimivad deterministliku genereerimise kontekstipõhise prefiksina. DNS kasutatakse domeeninimega, URL täieliku URL-iga, OID objekti ISO-identifikaatoriga, X500 LDAP-i eristatava nimega. Samuti saate määratleda oma privaatse nimeruumi: v4 UUID, mis genereeritakse teie rakenduse jaoks üks kord ja mida kasutatakse uuesti kõigi teie v5 identifikaatorite deterministliku juurena.
UUID või põhiidentifikaatorite automaatne suurendamine?
Automaatne suurendamine jääb monoliitsete andmebaaside jaoks väga tõhusaks ja paljastab kergesti kirjutamisjärjestuse, mis võib avaliku API poolel olla ebasoovitav. UUID-d sobivad kõige paremini hajutatud arhitektuuride, kliendipoolse genereerimise, andmebaaside ühendamise ja läbipaistmatute identifikaatorite avalikuks eksponeerimiseks. Ideaalne kompromiss 2026. aastal: UUID v7 primaarvõtmes, mis ühendab endas universaalsuse, mõistliku läbipaistmatuse ja hea indeksi jõudluse.
Kas loodud UUID-d läbivad kolmanda osapoole serveri?
Genereerimine toimub keskkonnas cdrn.fr, ilma välist teenust kutsumata. Täiesti juhuslike (v4) või ajalise (v7) versioonide puhul pole tundlikku teavet sisendiks vaja. V5 puhul kasutatakse teie sisestatud nimeruumi ja nime ainult kohaliku SHA-1 arvutamiseks. Loodud identifikaatoreid ei logita, tööriista abil saate luua konfidentsiaalsesse konteksti mõeldud UUID-sid.
Päringunäide
curl -X POST https://cdrn.fr/api/v1/tools/uuid-generator/execute \
-H "Content-Type: application/json" \
-d '{"version":"uuid_version_1","quantity":3,"namespace":"namespace_dns","name":"..."}'
Sisendskeem
| Väli | Tüüp | Kohustuslik | Vaikimisi |
|---|---|---|---|
version |
choice (uuid_version_1, uuid_version_4, uuid_version_5, uuid_version_7) | ✓ | – |
quantity |
integer | ✓ | 3 |
namespace |
choice (namespace_dns, namespace_url, namespace_oid, namespace_x500) | – | – |
name |
string | – | – |
Lõpp-punktid
GET https://cdrn.fr/api/v1/tools- loetleb kõik saadaolevad tööriistadGET https://cdrn.fr/api/v1/tools/uuid-generator- toob selle tööriista skeemiPOST https://cdrn.fr/api/v1/tools/uuid-generator/execute- täidab selle tööriista JSON-payloadiga