§

UUID Generator — Δωρεάν Online UUID v4 Generator

Η v4 είναι η προεπιλογή. Η v7 ταξινομεί λεξικογραφικά κατά χρόνο δημιουργίας και είναι η καλύτερη επιλογή για κλειδιά βάσεων δεδομένων.
Μορφή εξόδου
§

Αποτέλεσμα

    Τα Παγκοσμίως Μοναδικά Αναγνωριστικά αποτελούν θεμέλιο των στηλών ταυτότητας σε όλη τη στοίβα δεδομένων των ΗΠΑ: κάθε προεπιλεγμένο `id` σε ένα νέο Supabase, PlanetScale ή AWS Aurora PostgreSQL είναι τύπος `uuid`, κάθε αντικείμενο Stripe φέρει ένα κλειδί σε σχήμα UUID και κάθε πίνακας διαστάσεων Snowflake ή BigQuery που χρειάζεται ένα σταθερό υποκατάστατο κλειδί καταφεύγει στο RFC 9562 (πρώην RFC 4122). Οργανισμοί στο Ηνωμένο Βασίλειο που ενσωματώνονται με NHS Digital APIs χρησιμοποιούν UUIDs ως τιμές `Bundle.identifier` μέσα σε πόρους HL7 FHIR R4. Αυτή η γεννήτρια εκπέμπει κρυπτογραφικά τυχαία v4 UUIDs και χρονικά ταξινομημένα v7 UUIDs εξ ολοκλήρου μέσω του Web Crypto API του προγράμματος περιήγησης, έτσι ώστε οι τιμές αναγνωριστικών που δεσμεύετε για παραγωγή να μην διαρρέουν ποτέ μέσω ενός απομακρυσμένου τελικού σημείου.

    Τι είναι ένα UUID;

    Ένα UUID (Παγκοσμίως Μοναδικό Αναγνωριστικό) είναι μια τιμή 128-bit που αποδίδεται ως συμβολοσειρά 36 χαρακτήρων όπως 550e8400-e29b-41d4-a716-446655440000. Η μορφή και οι σημασιολογίες έκδοσης ορίζονται από το RFC 4122 για τις v1 έως v5, και από το RFC 9562 για τις νεότερες εκδόσεις v6, v7 και v8. Αυτό το εργαλείο δημιουργεί v4 (καθαρά τυχαία), v1 (χρονική σήμανση συν τυχαίο αναγνωριστικό κόμβου) και v7 (πρόθεμα χρονικής σήμανσης Unix-χιλιοστών plus τυχαίο επίθημα, ταξινομήσιμο κατά χρόνο δημιουργίας) — όλα στο πρόγραμμα περιήγησής σας, χρησιμοποιώντας το Web Crypto API της πλατφόρμας. Κανένα δεδομένο δεν αποστέλλεται σε διακομιστή.

    Πώς λειτουργεί η δημιουργία UUID;

    Κάθε έκδοση ανταλλάσσει διαφορετικά τον ντετερμινισμό, τη δυνατότητα ταξινόμησης και την εντροπία. Το εργαλείο επιλέγει τον σωστό αλγόριθμο βάσει της επιλογής σας:

    1. v4 (τυχαίο) καλεί το crypto.randomUUID() του προγράμματος περιήγησης, το οποίο επιστρέφει 122 bit κρυπτογραφικής τυχαιότητας με τα 6 σταθερά bit (έκδοση 0100 και την παραλλαγή 10) τοποθετημένα στις σωστές θέσεις. Οι συγκρούσεις είναι αστρονομικά απίθανες — θα χρειαζόταν να δημιουργήσετε περίπου 2,71 πεντάκις εκατομμύρια v4 UUIDs για να πετύχετε ένα μόνο διπλότυπο με πιθανότητα 50%.
    2. v1 (χρονική σήμανση + κόμβος) συσκευάζει μια χρονική σήμανση 60-bit Gregorian (κρότοι 100 νανοδευτερολέπτων από το 1582-10-15) στα time_low / time_mid / time_hi_and_version, ορίζει την ημί-δακτυλική έκδοση σε 0001, επιλέγει μια ακολουθία ρολογιού 14-bit με τα bit παραλλαγής ορισμένα και χρησιμοποιεί ένα τυχαίο αναγνωριστικό κόμβου 48-bit με το bit πολυεκπομπής ενεργοποιημένο (το RFC 4122 §4.5 επιτρέπει ρητά ένα τυχαίο αναγνωριστικό κόμβου όταν δεν είναι διαθέσιμο MAC υλικού — το bit πολυεκπομπής το επισημαίνει ως μη-MAC).
    3. v7 (ταξινομήσιμη χρονική σήμανση), σύμφωνα με το RFC 9562 §5.7, διατάσσει μια χρονική σήμανση Unix-χιλιοστών 48-bit big-endian, στη συνέχεια την έκδοση 4-bit 0111, στη συνέχεια 12 τυχαία bit, στη συνέχεια την παραλλαγή 2-bit 10, και στη συνέχεια 62 ακόμα τυχαία bit. Επειδή η χρονική σήμανση βρίσκεται στα πιο σημαντικά bit, τα v7 UUIDs ταξινομούνται λεξικογραφικά με σειρά δημιουργίας — μια ιδιότητα που καμία άλλη έκδοση UUID δεν προσφέρει χωρίς πρόσθετη κωδικοποίηση.
    4. Όλη η τυχαιότητα προέρχεται από το crypto.getRandomValues(), το κρυπτογραφικά ασφαλές RNG του προγράμματος περιήγησης. Τόσο η v1 όσο και η v7 περιλαμβάνουν μια μονοτονική προστασία εντός του ίδιου κρότου, έτσι ώστε δύο διαδοχικές κλήσεις μέσα στον ίδιο κρότο ρολογιού να εξακολουθούν να ταξινομούν τη δεύτερη πάνω από την πρώτη — σημαντικό για μαζικές εκτελέσεις δημιουργίας που ανταγωνίζονται το ρολόι χιλιοστών.
    5. Η αλυσίδα μορφοποίησης εκτελείται μετά τη δημιουργία. Μπορείτε να αφαιρέσετε παύλες, να μετατρέψετε σε κεφαλαία, να περιβάλετε την τιμή σε αγκύλες ({…} — η σύμβαση GUID της Microsoft) ή να αποδώσετε τα ακατέργαστα 16 byte ως base64 (έξοδος 22 χαρακτήρων, χωρίς συμπλήρωση). Η λειτουργία Base64 παρακάμπτει τις άλλες επιλογές μορφοποίησης επειδή το base64 είναι η δική του αναπαράσταση.

    Γιατί να χρησιμοποιήσετε αυτή τη γεννήτρια UUID;

    • Τίποτα δεν φεύγει από το πρόγραμμα περιήγησής σας. Το Web Crypto API εκτελείται τοπικά· η σελίδα δεν πραγματοποιεί κανένα αίτημα δικτύου μετά την αρχική φόρτωση του εγγράφου. Ανοίξτε τα DevTools, κάντε κλικ στο Δημιουργία και το δίκτυο παραμένει σιωπηλό.
    • Έξοδος σωστή κατά RFC. Η v4 ακολουθεί το RFC 4122 §4.4, η v1 ακολουθεί τα §4.2 και §4.5, και η v7 ακολουθεί το RFC 9562 §5.7. Η ημι-δακτυλική έκδοσης και τα bit παραλλαγής τοποθετούνται εκεί που ορίζουν τα πρότυπα — κάθε UUID επικυρώνεται έναντι της κανονικής regex έκδοσης.
    • Ταξινομήσιμη v7 για κλειδιά βάσεων δεδομένων. Ένα v7 UUID που χρησιμοποιείται ως ομαδοποιημένο πρωτεύον κλειδί σε Postgres, MySQL ή SQL Server διατηρεί τις εγγραφές προσαρτημένες μόνο στο ευρετήριο — χωρίς διαχωρισμούς σελίδων, χωρίς τυχαία I/O — ενώ παραμένει παγκοσμίως μοναδικό. Η v4 δεν μπορεί να το κάνει αυτό επειδή τα bit της είναι τυχαία.
    • Μαζική δημιουργία χωρίς όρια ρυθμού. Δημιουργήστε 1, 10, 100 ή 1.000 UUIDs ταυτόχρονα. Δεν υπάρχει όριο ούτε εγγραφή — το εργαλείο τρέχει στην καρτέλα σας, οπότε το όριο είναι η CPU σας, όχι ένα επίπεδο API προμηθευτή.

    Ποιες είναι οι συνήθεις εφαρμογές των UUIDs;

    Τα UUIDs εμφανίζονται όπου ένα σύστημα χρειάζεται ένα παγκοσμίως μοναδικό αναγνωριστικό χωρίς συντονισμό με μια κεντρική αρχή:

    • Πρωτεύοντα κλειδιά βάσεων δεδομένων. Οι αυτόματες αυξανόμενες ακέραιες τιμές διαρρέουν μετρήσεις γραμμών και σπάνε την κατατμήση. Τα UUIDs είναι σταθερά μεταξύ κατατμήσεων, ασφαλή για συγχώνευση σε περιοχές και (με v7) διατηρούν τις εγγραφές B-tree ζεστές χωρίς διαχωρισμούς σελίδων. Μια τυπική εφαρμογή δημιουργεί το UUID από την πλευρά του πελάτη, το στέλνει στην εισαγωγή και ποτέ δεν χρειάζεται να κάνει μετάβαση μετ' επιστροφής στον διακομιστή για το κλειδί.
    • Αναγνωριστικά συσχέτισης αιτημάτων. Το ενδιάμεσο λογισμικό HTTP επισυνάπτει ένα v4 UUID σε κάθε εισερχόμενο αίτημα, το καταγράφει σε κάθε span και το προωθεί προς τα κάτω (συχνά ως κεφαλίδα X-Request-Id). Όταν ένας πελάτης αναφέρει ένα σφάλμα, ο μηχανικός υποστήριξης επικολλά το αναγνωριστικό και ολόκληρο το ίχνος του αιτήματος εμφανίζεται — σε υπηρεσίες και ζώνες ώρας — χωρίς ασάφεια.
    • Κλειδιά ταυτοδυναμίας. Τα API πληρωμών (Stripe, Adyen, Square) δέχονται μια κεφαλίδα Idempotency-Key ώστε ένα επαναληπτικό αίτημα να μην χρεώνει ποτέ τον πελάτη δύο φορές. Ένα UUID που δημιουργείται από τον πελάτη εγγυάται ότι το κλειδί είναι μοναδικό ανά λογική λειτουργία, που είναι η σύμβαση που απαιτούν αυτά τα API.

    Πώς μοιάζει ένα παράδειγμα UUID;

    Στο Node.js ή σε ένα σύγχρονο πρόγραμμα περιήγησης, η μονογραμμή crypto.randomUUID() επιστρέφει ένα νέο v4 UUID — για παράδειγμα 3f50b5a8-2c54-4b9c-9c1f-3e5c7e2b8d12. Χρησιμοποιήστε το για ένα αναγνωριστικό αιτήματος ή ένα κλειδί ταυτοδυναμίας. Όταν το UUID προορίζεται για μια στήλη βάσης δεδομένων που θα είναι το ομαδοποιημένο πρωτεύον κλειδί, δημιουργήστε v7: δύο τιμές v7 που παράγονται με διαφορά ενός χιλιοστού, όπως 0190a3b0-7d4f-7c9e-8b21-a4d6f0bd9c11 και 0190a3b0-7d50-7f15-9c4e-72b3e0c1d8a4, ταξινομούνται λεξικογραφικά με σειρά δημιουργίας. Ο τύπος uuid της Postgres αποθηκεύει και τις δύο εκδόσεις πανομοιότυπα — η διαφορά εμφανίζεται κατά τον χρόνο εγγραφής στο ευρετήριο, όπου οι εγγραφές v7 προστίθενται στα δεξιά του B-tree, ενώ οι εγγραφές v4 διασκορπίζονται και προκαλούν τυχαία I/O.

    Αυτή η Γεννήτρια UUID κάνει μία δουλειά: να μετατρέπει ένα κλικ σε ένα ή πολλά αναγνωριστικά συμβατά με RFC, μορφοποιημένα όπως τα χρειάζεστε, χωρίς να στέλνει το αίτημά σας σε έναν διακομιστή. Επιλέξτε μια έκδοση, επιλέξτε ένα πλήθος, επιλέξτε μια μορφή — δημιουργήστε, αντιγράψτε, συνεχίστε.