Ģenerēt UUID (v1, v4, v5, v7)

ģenerē jūsu UUID (Universally Unique Identifier) v1, v4, v5 (deterministisks) vai v7 (time-ordered) formātā, atbilstoši RFC 4122

Kāpēc izmantot UUID?

UUID (universāli unikālie identifikatori) ir unikāli identifikatori, ko izmanto, lai nodrošinātu unikalitāti dažādās sistēmās un datu bāzēs, neprasot centrālu koordināciju. Tos parasti izmanto izplatītās sistēmās un tīmekļa lietojumprogrammās, lai ģenerētu unikālus resursu identifikatorus.

Atbalstītās UUID versijas

Šis rīks atbalsta šādas UUID versijas:

  • 1. versija: pamatojoties uz laikspiedolu un MAC adresi.
  • 4. versija: nejauši ģenerēta (visbiežāk lietotā).
  • 5. versija: pamatojoties uz nosaukumvietas un nosaukuma SHA-1 cipara nospiedumu (deterministisks: viena un tā pati nosaukumvietas un nosaukuma pāris vienmēr veidos vienu un to pašu UUID).
  • 7. versija: uz laiku sakārtota, ieteicama mūsdienu datu bāzes primārajām atslēgām (leksikogrāfiskā kārtošana — hronoloģiskā kārtošana).

UUID v5: nosaukumvieta un nosaukums

Lai ģenerētu v5 UUID, ir jāizvēlas standarta nosaukumvieta un jānorāda nosaukums:

  • DNS: lai izmantotu, ja nosaukums ir domēna nosaukums (piemēram, cdrn.fr).
  • URL: lai izmantotu, ja nosaukums ir URL (piemēram, https://cdrn.fr/).
  • OID: izmantojiet, ja nosaukums ir ISO objekta identifikators.
  • X500: izmantojiet, ja nosaukums ir X.500 atšķirīgs nosaukums.

Tā kā ģenerēšana ir deterministiska, UUID v5 ir īpaši piemērots reproducējamu identifikatoru iegūšanai no stabiliem datiem.

Kā ģenerēt UUID

Sākumlapā varat ģenerēt UUID, nolaižamajā izvēlnē atlasot vajadzīgo versiju un noklikšķinot uz ģenerēšanas pogas. 5. versijai norādiet arī nosaukumvietu un nosaukumu.

Tiklīdz tiek ģenerēts UUID, tas tiks parādīts zaļā rezultātu rindā, norādot, ka tas ir veiksmīgi ģenerēts. Ja rodas kļūda, sarkanā līnijā tiks parādīts atbilstošais kļūdas ziņojums.

Kodu piemēri ģenerēto UUID izmantošanai

Jūs varat izmantot ģenerētos UUID savās lietojumprogrammās, integrējot tos tieši savā kodā. Šeit ir piemērs PHP:

toString() . PHP_EOL; echo "UUID v5: ". $uuidV5->toString() . PHP_EOL; echo "UUID v7: ". $uuidV7->toString() . PHP_EOL; ?>

Apstipriniet un analizējiet UUID

Varat arī pārbaudīt un analizēt esošos UUID, lai noteiktu to versiju un derīgumu. Šeit ir koda piemērs PHP:

getFields()->getVersion(); } cits { atbalss "Nederīgs UUID"; } ?>

Bieži uzdotie jautājumi

Kāda ir atšķirība starp UUID v1, v4, v5 un v7?

v1 apvieno laikspiedolu un iekārtas MAC adresi, kas var atklāt sensitīvu informāciju. v4 ir tīri nejauša (122 gadījuma biti), tā ir visbiežāk izmantotā versija. v5 ir deterministisks: viena un tā pati nosaukumvietas un nosaukumu pāris vienmēr rada vienu un to pašu UUID, pateicoties SHA-1 jaukšanai. v7 ietver laikspiedolu milisekundēs identifikatora sākumā, kas padara to kārtotu hronoloģiski un ideāli piemērotu primārajām atslēgām.

Kāda ir v4 UUID sadursmes varbūtība?

V4 UUID ir 122 gadījuma biti jeb aptuveni 5,3 × 10^36 iespējamās vērtības. Lai sasniegtu 50% sadursmes iespējamību (dzimšanas dienas paradokss), būtu jāģenerē aptuveni 2,7 × 10^18 UUID. Praksē standarta pielietojumā sadursmes iespējamība ir niecīga. Tas ļauj ģenerēt klienta puses identifikatorus bez saskaņošanas ar centrālo serveri.

Kāpēc izmantot UUID v7 datu bāzes primārajai atslēgai?

UUID v4, kas ievietots B koka rādītājā, izraisa spēcīgu sadrumstalotību: katrs ievietojums atrodas nejaušā vietā, kas pasliktina veiktspēju un kešatmiņas lietojumu. UUID v7 sākas ar laikspiedolu milisekundēs, tāpēc jaunas rindas vienmēr tiek ievietotas rādītāja beigās. Pēc tam ievietošanas veiktspēja tuvojas BIGSERIAL veiktspējai, vienlaikus saglabājot universālā identifikatora priekšrocības.

Kam tiek izmantotas UUID v5 DNS, URL, OID un X500 nosaukumvietas?

Šīs nosaukumvietas ir RFC 4122 iepriekš definēti UUID, kas darbojas kā kontekstuāls prefikss deterministiskai ģenerēšanai. DNS tiek izmantots ar domēna nosaukumu, URL ar pilnu URL, OID ar objekta ISO identifikatoru, X500 ar LDAP atšķirīgu nosaukumu. Varat arī definēt savu privāto nosaukumvietu: v4 UUID, kas vienreiz ģenerēts jūsu lietojumprogrammai un tiek atkārtoti izmantots kā deterministiskā sakne visiem jūsu v5 identifikatoriem.

UUID vai automātiskais palielinājums bāzes identifikatoriem?

Automātiskā palielināšana joprojām ir ļoti efektīva monolītām datu bāzēm un viegli atklāj rakstīšanas secību, kas var būt nevēlama publiskajā API pusē. UUID ir vislabāk piemēroti izkliedētām arhitektūrām, klienta puses ģenerēšanai, datu bāzu sapludināšanai un necaurredzamu identifikatoru publiskai eksponēšanai. Ideāls kompromiss 2026. gadā: UUID v7 primārajā atslēgā, kas apvieno universālumu, saprātīgu necaurredzamību un labu indeksa veiktspēju.

Vai ģenerētie UUID tiek nosūtīti caur trešās puses serveri?

Ģenerēšana tiek veikta cdrn.fr vidē, neizsaucot ārēju dienestu. Pilnīgi nejaušām (v4) vai pagaidu (v7) versijām kā ievade nav nepieciešama sensitīva informācija. 5. versijai jūsu norādītā nosaukumvieta un nosaukums tiek izmantoti tikai lokālajam SHA-1 aprēķinam. Neviens ģenerēts identifikators netiek reģistrēts, varat izmantot rīku, lai izveidotu UUID, kas paredzēti konfidenciālam kontekstam.

Pieprasījuma piemērs

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":"..."}'

Ievades shēma

Lauks Tips Obligāts Noklusējums
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

Endpoint

  • GET https://cdrn.fr/api/v1/tools - uzskaita visus pieejamos rīkus
  • GET https://cdrn.fr/api/v1/tools/uuid-generator - iegūst šī rīka shēmu
  • POST https://cdrn.fr/api/v1/tools/uuid-generator/execute - izpilda šo rīku ar JSON payload