Ģenerējiet vispārēji unikālus identifikatorus (UUID) dažādām lietojumprogrammām. Izveidojiet gan 1. versijas (laika bāzētas), gan 4. versijas (nejaušas) UUID, ko izmantot izplatītajās sistēmās, datu bāzēs un citur.
Universāli unikāls identifikators (UUID) ir 128 bitu skaitlis, ko izmanto informācijas identificēšanai datoru sistēmās. UUID ir standartizēti Open Software Foundation (OSF) kā daļa no Distribuētās datoru vides (DCE). Šie identifikatori ir izstrādāti, lai būtu unikāli gan telpā, gan laikā, padarot tos ideāli piemērotus dažādām lietojumprogrammām distribūcijas sistēmās un citur.
Šis UUID ģeneratora rīks ļauj jums izveidot gan 1. versijas (laika bāzētus), gan 4. versijas (nejaušus) UUID. Šie identifikatori ir noderīgi dažādās situācijās, kur nepieciešama unikāla identifikācija, piemēram, datu bāzes atslēgās, distribūcijas sistēmās un tīkla protokolos.
UUID parasti tiek attēlots kā 32 heksadecimārie cipari, kas attēloti piecās grupās, kas atdalītas ar defisēm, formā 8-4-4-4-12 kopā veidojot 36 rakstzīmes (32 alfanumeriskās rakstzīmes un 4 defises). Piemēram:
1550e8400-e29b-41d4-a716-446655440000
2
UUID 128 biti ir sadalīti specifiskās laukos, katrs nesot dažādu informāciju atkarībā no UUID versijas:
Šeit ir diagramma, kas ilustrē UUID struktūru:
Ir vairākas UUID versijas, katrai ar savu ģenerēšanas metodi:
Šis rīks koncentrējas uz 1. un 4. versijas UUID ģenerēšanu.
versijas UUID tiek ģenerēti, izmantojot šādas sastāvdaļas:
Laika zīmogs: 60 bitu vērtība, kas attēlo 100 nanosekunžu intervālu skaitu kopš 1582. gada 15. oktobra (Gregorianas reformas datums kristīgajā kalendārā).
Pulksteņa secība: 14 bitu vērtība, kas tiek izmantota, lai izvairītos no dublēšanās gadījumā, ja pulkstenis tiek iestatīts atpakaļ.
Nodaļa: 48 bitu vērtība, parasti iegūta no datora MAC adreses.
versijas UUID ģenerēšanas formula var tikt izteikta kā:
1UUID = (laika_zīmogs * 2^64) + (pulsa_secība * 2^48) + nodaļa
2
1UUID = nejaušs_128_bit_skaitlis
2
Ar specifiskiem bitiem, kas iestatīti, lai norādītu versiju (4) un variantu.
UUID ir daudz pielietojumu dažādās datorzinātņu un programmatūras inženierijas jomās:
Datu bāzes atslēgas: UUID bieži tiek izmantoti kā primārās atslēgas datu bāzēs, īpaši distribūcijas sistēmās, kur vairāki mezgli var vienlaikus ģenerēt ierakstus.
Distribūcijas sistēmas: Lielās distribūcijas sistēmās UUID palīdz unikāli identificēt resursus, darījumus vai notikumus vairākos mezglos vai datu centros.
Satura adresēšana: UUID var tikt izmantoti, lai izveidotu unikālus identifikatorus saturam satura adresējamo uzglabāšanas sistēmās.
Sesiju pārvaldība: Tīmekļa lietojumprogrammas bieži izmanto UUID, lai pārvaldītu lietotāju sesijas, nodrošinot, ka katrai sesijai ir unikāls identifikators.
IoT ierīču identificēšana: Interneta lietu (IoT) lietojumprogrammās UUID var tikt izmantoti, lai unikāli identificētu katru ierīci tīklā.
Lai gan UUID ir plaši izmantoti, ir alternatīvi pieejas unikālu identifikatoru ģenerēšanai:
Automātiski pieaugoši ID: Vienkārši un bieži izmantoti vienas datu bāzes sistēmās, bet nav piemēroti distribūcijas vidēm.
Laika bāzēti ID: Var būt noderīgi laika secībā kārtotu datu gadījumā, bet var saskarties ar dublēšanās problēmām augstas saskares situācijās.
Snoflaka ID: Izstrādāti Twitter, šie ID apvieno laika zīmogu un darba numuru, lai ģenerētu unikālus ID distribūcijas sistēmās.
ULID (Universāli unikāli leksikogrāfiski kārtoti identifikatori): Jaunāka alternatīva, kas cenšas būt draudzīgāka cilvēkiem un kārtotāka nekā UUID.
UUID koncepcija pirmo reizi tika ieviesta Apollo tīkla datoru sistēmā un vēlāk standartizēta Open Software Foundation (OSF) kā daļa no Distribuētās datoru vides (DCE) 1990. gados. Sākotnējā specifikācija tika publicēta 1997. gadā kā ISO/IEC 11578:1996 un vēlāk pārskatīta 2005. gadā kā daļa no ISO/IEC 9834-8:2005.
Galvenie notikumi UUID vēsturē:
Laika gaitā UUID ir kļuvuši par būtisku rīku distribūcijas sistēmās un datu bāzu projektēšanā, ar dažādām ieviešanām un pielāgojumiem dažādās programmēšanas valodās un platformās.
Šeit ir piemēri UUID ģenerēšanai dažādās programmēšanas valodās:
1import uuid
2
3## Ģenerēt 4. versijas (nejaušu) UUID
4nejaušs_uuid = uuid.uuid4()
5print(f"4. versijas UUID: {nejaušs_uuid}")
6
7## Ģenerēt 1. versijas (laika bāzētu) UUID
8laika_bazets_uuid = uuid.uuid1()
9print(f"1. versijas UUID: {laika_bazets_uuid}")
10
1const { v1: uuidv1, v4: uuidv4 } = require('uuid');
2
3// Ģenerēt 4. versijas (nejaušu) UUID
4const nejaušsUuid = uuidv4();
5console.log(`4. versijas UUID: ${nejaušsUuid}`);
6
7// Ģenerēt 1. versijas (laika bāzētu) UUID
8const laikaBazetsUuid = uuidv1();
9console.log(`1. versijas UUID: ${laikaBazetsUuid}`);
10
1import java.util.UUID;
2
3public class UuidGenerator {
4 public static void main(String[] args) {
5 // Ģenerēt 4. versijas (nejaušu) UUID
6 UUID nejaušsUuid = UUID.randomUUID();
7 System.out.println("4. versijas UUID: " + nejaušsUuid);
8
9 // Ģenerēt 1. versijas (laika bāzētu) UUID
10 UUID laikaBazetsUuid = UUID.fromString(new com.eaio.uuid.UUID().toString());
11 System.out.println("1. versijas UUID: " + laikaBazetsUuid);
12 }
13}
14
1require 'securerandom'
2
3## Ģenerēt 4. versijas (nejaušu) UUID
4nejaušs_uuid = SecureRandom.uuid
5puts "4. versijas UUID: #{nejaušs_uuid}"
6
7## Ruby nav iebūvēta metode 1. versijas UUID ģenerēšanai
8## Jums būtu jāizmanto gems, piemēram, 'uuidtools', lai to izdarītu
9
1<?php
2// Ģenerēt 4. versijas (nejaušu) UUID
3$nejaušsUuid = 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 "4. versijas UUID: " . $nejaušsUuid . "\n";
11
12// PHP nav iebūvēta metode 1. versijas UUID ģenerēšanai
13// Jums būtu jāizmanto bibliotēka, piemēram, 'ramsey/uuid', lai to izdarītu
14?>
15
Atklājiet vairāk rīku, kas varētu būt noderīgi jūsu darbplūsmai