Luo universaalisti ainutlaatuisia tunnisteita (UUID) erilaisiin sovelluksiin. Luo sekä version 1 (aikaperusteisia) että version 4 (satunnaisia) UUID:ita käytettäväksi hajautetuissa järjestelmissä, tietokannoissa ja muissa.
Yleisesti ainutkertainen tunniste (UUID) on 128-bittinen numero, jota käytetään tietojen tunnistamiseen tietokonejärjestelmissä. UUID:t ovat standardoituja Open Software Foundationin (OSF) toimesta osana hajautettua laskentaympäristöä (DCE). Nämä tunnisteet on suunniteltu olemaan ainutlaatuisia sekä tilassa että ajassa, mikä tekee niistä ihanteellisia erilaisiin sovelluksiin hajautetuissa järjestelmissä ja muualla.
Tämä UUID-generaattorityökalu mahdollistaa sekä version 1 (aikaperusteinen) että version 4 (satunnainen) UUID:ien luomisen. Nämä tunnisteet ovat hyödyllisiä erilaisissa skenaarioissa, joissa tarvitaan ainutkertaista tunnistamista, kuten tietokantavälikkeissä, hajautetuissa järjestelmissä ja verkko-protokollissa.
UUID esitetään tyypillisesti 32 heksadesimaalisen numeron muodossa, joka on esitetty viidessä ryhmässä, jotka on erotettu viivoilla, muodossa 8-4-4-4-12, yhteensä 36 merkkiä (32 alfanumeerista merkkiä ja 4 viivaa). Esimerkiksi:
1550e8400-e29b-41d4-a716-446655440000
2
UUID:n 128 bittiä on jaettu erityisiin kenttiin, joista jokaisessa on eri tietoa riippuen UUID:n versiosta:
Tässä on kaavio, joka havainnollistaa UUID-rakennetta:
UUID:lla on useita versioita, joilla on omat generointimenetelmänsä:
Tämä työkalu keskittyy version 1 ja version 4 UUID:ien luomiseen.
Version 1 UUID:t generoidaan seuraavien komponenttien avulla:
Version 1 UUID:n generointikaava voidaan ilmaista seuraavasti:
1UUID = (timestamp * 2^64) + (clock_sequence * 2^48) + node
2
Version 4 UUID:t generoidaan käyttäen kryptografisesti vahvaa satunnaislukugeneraattoria. Kaava on yksinkertaisesti:
1UUID = random_128_bit_number
2
Tietyt bitit asetetaan osoittamaan versiota (4) ja varianttia.
UUID:lla on lukuisia sovelluksia eri tietojenkäsittelytieteen ja ohjelmistosuunnittelun aloilla:
Tietokannan avaimet: UUID:ita käytetään usein ensisijaisina avaimina tietokannoissa, erityisesti hajautetuissa järjestelmissä, joissa useat solmut voivat luoda tietueita samanaikaisesti.
Hajautetut järjestelmät: Suurissa hajautetuissa järjestelmissä UUID:t auttavat yksilöimään resursseja, tapahtumia tai tapahtumia useiden solmujen tai datakeskusten välillä.
Sisältöosoitus: UUID:ita voidaan käyttää luomaan ainutlaatuisia tunnisteita sisällölle sisältöosoitteellisissa tallennusjärjestelmissä.
Istunnon hallinta: Verkkosovellukset käyttävät usein UUID:ita käyttäjäistuntojen hallintaan varmistaen, että jokaisella istunnolla on ainutlaatuinen tunniste.
IoT-laitteiden tunnistus: Esineiden internetin (IoT) sovelluksissa UUID:ita voidaan käyttää yksilöimään yksittäisiä laitteita verkossa.
Vaikka UUID:t ovat laajalti käytettyjä, on olemassa vaihtoehtoisia lähestymistapoja ainutkertaisten tunnisteiden luomiseen:
Automaattisesti kasvavat ID:t: Yksinkertaisia ja yleisesti käytettyjä yksittäisissä tietokantajärjestelmissä, mutta eivät sovellu hajautettuihin ympäristöihin.
Aikaperusteiset ID:t: Voivat olla hyödyllisiä aikajärjestyksessä oleville tiedoille, mutta voivat kohdata törmäysongelmia korkean samanaikaisuuden skenaarioissa.
Lumihiutale-ID:t: Twitterin kehittämä, nämä ID:t yhdistävät aikaleiman ja työntekijän numeron luodakseen ainutlaatuisia ID:t hajautetuissa järjestelmissä.
ULID (Yleisesti ainutkertainen leksikografisesti järjestettävä tunniste): Uudempi vaihtoehto, joka pyrkii olemaan ihmisystävällisempi ja järjestettävämpi kuin UUID:t.
UUID:iden käsite esiteltiin ensimmäisen kerran Apollo Network Computing Systemissä ja myöhemmin standardoitiin Open Software Foundationin (OSF) toimesta osana hajautettua laskentaympäristöä (DCE) 1990-luvulla. Ensimmäinen spesifikaatio julkaistiin vuonna 1997 ISO/IEC 11578:1996 -standardina ja myöhemmin tarkistettiin vuonna 2005 osana ISO/IEC 9834-8:2005.
Tärkeitä virstanpylväitä UUID-historiassa:
Ajan myötä UUID:ista on tullut olennainen työkalu hajautetuissa järjestelmissä ja tietokannansuunnittelussa, ja niitä on sovellettu ja mukautettu eri ohjelmointikielissä ja alustoilla.
Tässä on esimerkkejä UUID:iden generoimisesta eri ohjelmointikielillä:
1import uuid
2
3## Generoi Version 4 (satunnainen) UUID
4random_uuid = uuid.uuid4()
5print(f"Version 4 UUID: {random_uuid}")
6
7## Generoi Version 1 (aikaperusteinen) UUID
8time_based_uuid = uuid.uuid1()
9print(f"Version 1 UUID: {time_based_uuid}")
10
1const { v1: uuidv1, v4: uuidv4 } = require('uuid');
2
3// Generoi Version 4 (satunnainen) UUID
4const randomUuid = uuidv4();
5console.log(`Version 4 UUID: ${randomUuid}`);
6
7// Generoi Version 1 (aikaperusteinen) UUID
8const timeBasedUuid = uuidv1();
9console.log(`Version 1 UUID: ${timeBasedUuid}`);
10
1import java.util.UUID;
2
3public class UuidGenerator {
4 public static void main(String[] args) {
5 // Generoi Version 4 (satunnainen) UUID
6 UUID randomUuid = UUID.randomUUID();
7 System.out.println("Version 4 UUID: " + randomUuid);
8
9 // Generoi Version 1 (aikaperusteinen) UUID
10 UUID timeBasedUuid = UUID.fromString(new com.eaio.uuid.UUID().toString());
11 System.out.println("Version 1 UUID: " + timeBasedUuid);
12 }
13}
14
1require 'securerandom'
2
3## Generoi Version 4 (satunnainen) UUID
4random_uuid = SecureRandom.uuid
5puts "Version 4 UUID: #{random_uuid}"
6
7## Rubylla ei ole sisäänrakennettua menetelmää Version 1 UUID:iden luomiseen
8## Tarvitset gemin kuten 'uuidtools' tämän tekemiseen
9
1<?php
2// Generoi Version 4 (satunnainen) UUID
3$randomUuid = sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
4 mt_rand(0, 0xffff), mt_rand(0, 0xffff),
5 mt_rand(0, 0xffff),
6 mt_rand(0, 0x0fff) | 0x4000,
7 mt_rand(0, 0x3fff) | 0x8000,
8 mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
9);
10echo "Version 4 UUID: " . $randomUuid . "\n";
11
12// PHPlla ei ole sisäänrakennettua menetelmää Version 1 UUID:iden luomiseen
13// Tarvitset kirjaston kuten 'ramsey/uuid' tämän tekemiseen
14?>
15
Löydä lisää työkaluja, jotka saattavat olla hyödyllisiä työnkulullesi