Generoi UUID:t (v1, v4, v5, v7)
- Hallintapaneeli
- Dokumentaatio
- API
Miksi käyttää UUID-tunnuksia?
UUID:t (Universally Unique Identifier) ovat yksilöllisiä tunnisteita, joita käytetään takaamaan ainutlaatuisuus eri järjestelmissä ja tietokannoissa ilman keskitettyä koordinointia. Niitä käytetään yleisesti hajautetuissa järjestelmissä ja verkkosovelluksissa resurssien yksilöllisten tunnisteiden luomiseen.
Tuetut UUID-versiot
Tämä työkalu tukee seuraavia UUID-versioita:
- Versio 1: perustuu aikaleimaan ja MAC-osoitteeseen.
- Versio 4: luodaan satunnaisesti (yleisin versio).
- Versio 5: perustuu nimiavaruuden ja nimen SHA-1-tiivisteeseen (deterministinen: sama nimiavaruus ja nimi tuottavat aina saman UUID:n).
- Versio 7: ajallisesti järjestetty, suositellaan nykyaikaisten tietokantojen ensisijaisiksi avaimiksi (leksikografinen järjestys = kronologinen järjestys).
UUID v5: nimiavaruus ja nimi
UUID v5:n luomiseksi sinun on valittava standardi nimiavaruus ja annettava nimi:
- DNS: käytetään, kun nimi on verkkotunnus (esimerkiksi
cdrn.fr). - URL: käytetään, kun nimi on URL-osoite (esimerkiksi
https://cdrn.fr/). - OID: käytetään, kun nimi on ISO-objektitunniste.
- X500: käytetään, kun nimi on X.500 Distinguished Name.
Koska luominen on determinististä, UUID v5 sopii erityisen hyvin toistettavien tunnisteiden tuottamiseen vakaasta tiedosta.
Miten UUID-tunnuksia luodaan
Kotisivulla voit luoda UUID-tunnuksia valitsemalla haluamasi version pudotusvalikosta ja napsauttamalla luontipainiketta. Versiota 5 varten täytä lisäksi nimiavaruus ja nimi.
Heti kun UUID on luotu, se ilmestyy vihreälle tulosriville, mikä osoittaa, että se on luotu onnistuneesti. Jos tapahtuu virhe, punaisella rivillä näkyy vastaava virheilmoitus.
Koodiesimerkkejä luotujen UUID-tunnusten käyttöön
Voit käyttää luotuja UUID-tunnuksia sovelluksissasi integroimalla ne suoraan koodiisi. Tässä on esimerkki PHP-kielellä:
<?php
use Ramsey\Uuid\Uuid;
// Luo UUID v4 (satunnainen)
$uuidV4 = Uuid::uuid4();
// Luo UUID v5 (deterministinen nimiavaruuden ja nimen perusteella)
$uuidV5 = Uuid::uuid5(Uuid::NAMESPACE_DNS, 'cdrn.fr');
// Luo UUID v7 (ajallisesti järjestetty)
$uuidV7 = Uuid::uuid7();
echo "UUID v4 : " . $uuidV4->toString() . PHP_EOL;
echo "UUID v5 : " . $uuidV5->toString() . PHP_EOL;
echo "UUID v7 : " . $uuidV7->toString() . PHP_EOL;
?>
UUID-tunnusten validointi ja analysointi
Voit myös validoida ja analysoida olemassa olevia UUID-tunnuksia niiden version ja voimassaolon määrittämiseksi. Tässä on koodiesimerkki PHP-kielellä:
<?php
use Ramsey\Uuid\Uuid;
// Validoi UUID
$uuidString = '123e4567-e89b-12d3-a456-426614174000';
if (Uuid::isValid($uuidString)) {
$uuid = Uuid::fromString($uuidString);
echo "Valid UUID versio: " . $uuid->getFields()->getVersion();
} else {
echo "Virheellinen UUID";
}
?>
Usein kysytyt kysymykset
Mitä eroa on UUID v1, v4, v5 ja v7 -versioilla?
v1 yhdistää aikaleiman ja koneen MAC-osoitteen, mikä voi paljastaa arkaluonteisia tietoja. v4 on täysin satunnainen (122 bittiä satunnaisuutta), ja se on yleisimmin käytetty versio. v5 on deterministinen: sama nimiavaruus ja nimi tuottavat aina saman UUID:n SHA-1-tiivisteen avulla. v7 sisältää aikaleiman millisekunteina tunnisteen alussa, mikä tekee siitä kronologisesti järjestetyn ja ihanteellisen ensisijaisille avaimille.
Mikä on UUID v4:n törmäystodennäköisyys?
UUID v4:ssä on 122 satunnaista bittiä, mikä tarkoittaa noin 5,3 × 10^36 mahdollista arvoa. 50 prosentin törmäystodennäköisyyden (syntymäpäiväparadoksi) saavuttamiseksi olisi luotava noin 2,7 × 10^18 UUID:tä. Käytännössä tavallisessa sovelluksessa törmäystodennäköisyys on mitätön. Tämä mahdollistaa tunnisteiden luomisen asiakaspuolella ilman koordinointia keskuspalvelimen kanssa.
Miksi UUID v7 on parempi tietokannan ensisijaiseksi avaimeksi?
B-puu-indeksiin lisättävä UUID v4 aiheuttaa voimakasta fragmentoitumista: jokainen lisäys osuu satunnaiseen kohtaan, mikä heikentää suorituskykyä ja välimuistin käyttöä. UUID v7 alkaa aikaleimalla millisekunteina, joten uudet rivit lisätään aina indeksin loppuun. Lisäyssuorituskyky on tällöin lähellä BIGSERIAL-tyyppiä, säilyttäen silti universaalin tunnisteen edut.
Mihin UUID v5:n DNS-, URL-, OID- ja X500-nimiavaruuksia käytetään?
Nämä nimiavaruudet ovat RFC 4122:ssa määriteltyjä UUID-tunnuksia, jotka toimivat kontekstuaalisina etuliitteinä deterministiselle luomiselle. DNS:ää käytetään verkkotunnuksen kanssa, URL:ää täydellisen URL-osoitteen kanssa, OID:tä ISO-objektitunnisteen kanssa ja X500:aa LDAP Distinguished Name -nimen kanssa. Voit myös määrittää oman yksityisen nimiavaruutesi: kerran luotu UUID v4 sovelluksellesi, jota käytetään deterministisenä juurena kaikille v5-tunnisteillesi.
UUID vai automaattinen inkrementointi tietokannan tunnisteille?
Automaattinen inkrementointi on edelleen erittäin tehokas monoliittisissa tietokannoissa, mutta se paljastaa kirjoitusjärjestyksen, mikä voi olla epätoivottavaa julkisessa API:ssa. UUID:t sopivat paremmin hajautettuihin arkkitehtuureihin, asiakaspuolen luontiin, tietokantojen yhdistämiseen ja läpinäkymättömien tunnisteiden julkiseen esittämiseen. Ihanteellinen kompromissi vuonna 2026: UUID v7 ensisijaisena avaimena, jossa yhdistyvät universaalisuus, kohtuullinen läpinäkymättömyys ja hyvä indeksisuorituskyky.
Kulkevatko luodut UUID-tunnukset kolmannen osapuolen palvelimen kautta?
Luominen tapahtuu cdrn.fr-ympäristössä ilman kutsuja ulkoisiin palveluihin. Täysin satunnaisia (v4) tai ajallisia (v7) versioita varten ei tarvita arkaluonteisia syötetietoja. Versiota 5 varten antamasi nimiavaruus ja nimi palvelevat vain paikallista SHA-1-laskentaa. Mitään luotuja tunnisteita ei lokoida, joten voit käyttää työkalua UUID-tunnusten tuottamiseen luottamuksellisiin tarkoituksiin.
Pyyntöesimerkki
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":"..."}'
Syöteskeema
| Kenttä | Tyyppi | Pakollinen | Oletus |
|---|---|---|---|
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 | – | – |
Päätepisteet
GET https://cdrn.fr/api/v1/tools- listaa kaikki saatavilla olevat työkalutGET https://cdrn.fr/api/v1/tools/uuid-generator- hakee tämän työkalun skeemanPOST https://cdrn.fr/api/v1/tools/uuid-generator/execute- suorittaa tämän työkalun JSON-payloadilla