Iġġenera UUID (v1, v4, v5, v7)
- Dashboard
- Dokumentazzjoni
- API
Għaliex tuża l-UUIDs?
L-UUIDs (Identifikaturi Universalment Uniċi) huma identifikaturi uniċi użati biex jiżguraw l-uniċità f'sistemi u databases differenti mingħajr ma jeħtieġu koordinazzjoni ċentrali. Huma komunement użati f'sistemi distribwiti u applikazzjonijiet tal-web biex jiġġeneraw identifikaturi uniċi għar-riżorsi.
Verżjonijiet UUID appoġġjati
Din l-għodda tappoġġja l-verżjonijiet UUID li ġejjin:
- Verżjoni 1: ibbażata fuq timestamp u indirizz MAC.
- Verżjoni 4: iġġenerat bl-addoċċ (l-aktar użat).
- Verżjoni 5: ibbażata fuq marki tas-swaba SHA-1 ta’ spazju tal-isem u isem (deterministiku: l-istess spazju tal-isem + par ta’ isem dejjem jipproduċi l-istess UUID).
- Verżjoni 7: ordnat temporanjament, rakkomandat għal ċwievet primarji tad-database moderni (għażla lessikografika = għażla kronoloġika).
UUID v5: spazju tal-isem u isem
Biex tiġġenera UUID v5, trid tagħżel spazju tal-isem standard u tipprovdi isem:
- DNS: biex tuża meta l-isem ikun isem ta’ dominju (per eżempju
cdrn.fr). - URL: biex tuża meta l-isem ikun URL (pereżempju
https://cdrn.fr/). - OID: Uża meta l-isem ikun identifikatur tal-oġġett ISO.
- X500: Uża meta l-isem ikun isem distint X.500.
Peress li l-ġenerazzjoni hija deterministika, UUID v5 huwa partikolarment adattat biex jipproduċi identifikaturi riproduċibbli minn data stabbli.
Kif tiġġenera UUIDs
Fuq il-home page, tista 'tiġġenera UUIDs billi tagħżel il-verżjoni mixtieqa minn drop-down menu u tikklikkja l-buttuna jiġġeneraw. Għall-verżjoni 5, ipprovdi wkoll l-ispazju tal-isem u l-isem.
Hekk kif UUID jiġi ġġenerat, jidher f'ringiela ta' riżultat aħdar li jindika li ġie ġġenerat b'suċċess. Jekk iseħħ żball, linja ħamra se turi l-messaġġ ta 'żball korrispondenti.
Eżempji ta' kodiċi għall-użu ta' UUIDs iġġenerati
Tista' tuża l-UUIDs iġġenerati fl-applikazzjonijiet tiegħek billi tintegrahom direttament fil-kodiċi tiegħek. Hawn eżempju fil-PHP:
toString() . PHP_EOL; echo "UUID v5: ". $uuidV5->toString() . PHP_EOL; echo "UUID v7: ". $uuidV7->toString() . PHP_EOL; ?>
Ivvalida u janalizza l-UUIDs
Tista' wkoll tivvalida u tanalizza l-UUIDs eżistenti biex tiddetermina l-verżjoni u l-validità tagħhom. Hawn eżempju ta 'kodiċi fil-PHP:
getFields()->getVersion(); } inkella { eku "UUID invalidu"; } ?>
Mistoqsijiet frekwenti
X'inhi d-differenza bejn UUID v1, v4, v5 u v7?
v1tgħaqqad timestamp u l-indirizz MAC tal-magna, li jistgħu jiżvelaw informazzjoni sensittiva. v4huwa purament każwali (122 bit każwali), hija l-aktar verżjoni użata. v5huwa deterministiku: l-istess par ta' isem + isem dejjem jipproduċi l-istess UUID grazzi għal hash SHA-1. v7 jinkludi timestamp f'millisekondi fil-bidu tal-identifikatur, li jagħmilha magħżula kronoloġikament u ideali għaċ-ċwievet primarji.
X'inhi l-probabbiltà ta' kolliżjoni ta' UUID v4?
UUID v4 għandu 122 bit każwali, jew bejn wieħed u ieħor 5.3 × 10^36 valuri possibbli. Biex tinkiseb probabbiltà ta' kolliżjoni ta' 50% (paradoss ta' twelid), ikun jeħtieġ li jiġi ġġenerat bejn wieħed u ieħor 2.7 × 10^18 UUID. Fil-prattika, fuq applikazzjoni standard, il-probabbiltà ta 'ħabta hija negliġibbli. Dan huwa dak li jippermetti li jiġu ġġenerati identifikaturi min-naħa tal-klijent mingħajr koordinazzjoni ma' server ċentrali.
Għaliex tuża UUID v7 għal ċavetta primarja tad-database?
UUID v4 imdaħħal f'indiċi B-tree jikkawża frammentazzjoni qawwija: kull inserzjoni taqa 'f'pożizzjoni każwali, li tiddegrada l-prestazzjoni u l-użu tal-cache. UUID v7 jibda b'timestamp f'millisekondi, għalhekk linji ġodda dejjem jiddaħħlu fl-aħħar tal-indiċi. Il-prestazzjoni tal-inserzjoni mbagħad toqrob dik ta' BIGSERIAL, filwaqt li żżomm il-vantaġġi ta' identifikatur universali.
Għal xiex jintużaw id-DNS, l-URL, l-OID u l-ispazji tal-isem X500 tal-UUID v5?
Dawn l-ispazji tal-isem huma UUIDs predefiniti fl-RFC 4122 li jaġixxu bħala prefiss kuntestwali għall-ġenerazzjoni deterministika. DNS jintuża b'isem ta' dominju, URL b'URL sħiħ, OID b'identifikatur ISO ta' oġġett, X500 b'isem distint LDAP. Tista' wkoll tiddefinixxi l-ispazju tal-isem privat tiegħek stess: UUID v4 iġġenerat darba għall-applikazzjoni tiegħek, użat mill-ġdid bħala l-għerq deterministiku għall-identifikaturi v5 kollha tiegħek.
UUID jew awto-inkrement għall-identifikaturi bażi?
L-inkrement awtomatiku jibqa 'effettiv ħafna għal databases monolitiċi u tiżvela faċilment is-sekwenza tal-kitba, li tista' ma tkunx mixtieqa min-naħa tal-API pubblika. L-UUIDs huma l-aktar adattati għal arkitetturi distribwiti, ġenerazzjoni min-naħa tal-klijent, amalgamazzjonijiet ta 'databases, u espożizzjoni pubblika ta' identifikaturi opaki. Il-kompromess ideali fl-2026: UUID v7 fiċ-ċavetta primarja, li tgħaqqad l-universalità, l-opaċità raġonevoli u l-prestazzjoni tajba tal-indiċi.
L-UUIDs iġġenerati jgħaddu minn server ta' parti terza?
Il-ġenerazzjoni titwettaq fl-ambjent cdrn.fr, mingħajr ma ssejjaħ servizz estern. Għal verżjonijiet purament każwali (v4) jew temporali (v7), l-ebda informazzjoni sensittiva mhi meħtieġa bħala input. Għal v5, l-ispazju tal-isem u l-isem li tipprovdi jintużaw għall-kalkolu SHA-1 lokali biss. L-ebda identifikatur iġġenerat mhu illoggjat, tista' tuża l-għodda biex tipproduċi UUIDs maħsuba għal kuntesti kunfidenzjali.
Eżempju ta' talba
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":"..."}'
Skema ta' input
| Kamp | Tip | Meħtieġ | Default |
|---|---|---|---|
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 | – | – |
Endpoints
GET https://cdrn.fr/api/v1/tools- telenka l-għodod kollha disponibbliGET https://cdrn.fr/api/v1/tools/uuid-generator- tikseb l-iskema ta' din l-għoddaPOST https://cdrn.fr/api/v1/tools/uuid-generator/execute- teżegwixxi din l-għodda b'payload JSON