Δημιουργία UUID
Δημιουργήστε τυχαία UUID έκδοσης 4, από ένα έως εκατό τη φορά, και αντιγράψτε τα ως λίστα. Προέρχονται από την κρυπτογραφικά ασφαλή γεννήτρια τυχαίων αριθμών του προγράμματος περιήγησής σας, ενώ ένας έλεγχος σας δείχνει την έκδοση και την παραλλαγή (variant) οποιουδήποτε UUID επικολλήσετε.
0 χαρακτήρες · 0 λέξεις · 0 γραμμές
Εκτελείται εξ ολοκλήρου σε αυτήν την καρτέλα του προγράμματος περιήγησης. Το κείμενό σας δεν ανεβαίνει ούτε αποθηκεύεται πουθενά.
Εκδόσεις UUID
Η έκδοση είναι το πρώτο ψηφίο της τρίτης ομάδας· η παραλλαγή κωδικοποιείται στο πρώτο ψηφίο της τέταρτης ομάδας (8, 9, a ή b για UUID κατά RFC). Τα παραδείγματα είναι τα διανύσματα δοκιμής του RFC 9562.
| Έκδοση | Βασίζεται σε | Παράδειγμα |
|---|---|---|
| v1 | Γρηγοριανή χρονοσήμανση + αναγνωριστικό κόμβου (MAC) | c232ab00-9414-11ec-b3c8-9f6bdeced846 |
| v3 | Hash MD5 ενός namespace + ονόματος | 5df41881-3aed-3515-88a7-2f4a814cf09e |
| v4 | 122 τυχαία bit | 919108f7-52d1-4320-9bac-f847db4148a8 |
| v5 | Hash SHA-1 ενός namespace + ονόματος | 2ed6657d-e927-568b-95e1-2665a8aea6a2 |
| v6 | Χρονοσήμανση v1 με αναδιάταξη ώστε τα ID να ταξινομούνται χρονικά | 1ec9414c-232a-6b00-b3c8-9f6bdeced846 |
| v7 | Millisecond Unix + τυχαία bit, ταξινομήσιμο | 017f22e2-79b0-7cc3-98c4-dc0c0c07398f |
| v8 | Προσαρμοσμένη διάταξη που ορίζει η εφαρμογή | 2489e9ad-2ee2-8e00-8ec9-32d5f69181c0 |
Τι είναι ένα UUID και πώς διαβάζεται
Ένα UUID (universally unique identifier, που στο λογισμικό της Microsoft ονομάζεται GUID) είναι ένας 128-bit αριθμός γραμμένος ως 32 δεκαεξαδικά ψηφία σε ομάδες 8-4-4-4-12, για παράδειγμα f47ac10b-58cc-4372-a567-0e02b2c3d479. Τυποποιήθηκε στο RFC 4122 το 2005· τον Μάιο του 2024 το έγγραφο αυτό αντικαταστάθηκε από το RFC 9562, το οποίο διατηρεί τις παλιές εκδόσεις και προσθέτει τρεις νέες. Δύο θέσεις είναι σταθερές: το πρώτο ψηφίο της τρίτης ομάδας είναι η έκδοση (το 4 στο 4372) και το πρώτο ψηφίο της τέταρτης ομάδας δείχνει την παραλλαγή (variant), η οποία είναι 8, 9, a ή b για κάθε UUID που ακολουθεί το RFC.
Η έκδοση 4 γεμίζει τα υπόλοιπα 122 bit με τυχαία δεδομένα. Ο χώρος αυτός είναι τόσο μεγάλος που θα έπρεπε να δημιουργήσετε περίπου 2,7 εκατομμύρια τρισεκατομμύρια (2,7 × 10¹⁸) UUID για πιθανότητα 50% να εμφανιστεί έστω ένα διπλότυπο. Γι' αυτό τα συστήματα δημιουργούν αναγνωριστικά v4 ανεξάρτητα σε πολλά μηχανήματα χωρίς συντονισμό. Η σελίδα χρησιμοποιεί crypto.randomUUID ή, όπου αυτό λείπει, crypto.getRandomValues, και ποτέ Math.random, του οποίου το αποτέλεσμα δεν σχεδιάστηκε να είναι απρόβλεπτο. Οι επιλογές Κεφαλαία και Χωρίς παύλες αλλάζουν μόνο τη μορφοποίηση· η τιμή είναι ίδια και οι περισσότεροι αναλυτές δέχονται και τις δύο μορφές.
v4, v7 και οι υπόλοιπες εκδόσεις
Οι εκδόσεις 1 και 6 βασίζονται σε χρονοσήμανση και αναγνωριστικό κόμβου, αρχικά τη διεύθυνση MAC του υπολογιστή, κάτι που αποκαλύπτει πού και πότε δημιουργήθηκε το αναγνωριστικό. Οι εκδόσεις 3 και 5 κατακερματίζουν ένα namespace και ένα όνομα με MD5 ή SHA-1, οπότε η ίδια είσοδος δίνει πάντα το ίδιο UUID. Η έκδοση 8 είναι μια ελεύθερη διάταξη για προσαρμοσμένα σχήματα. Η πιο σημαντική νέα έκδοση είναι η έκδοση 7: ξεκινά με μια χρονοσήμανση Unix 48 bit σε χιλιοστά του δευτερολέπτου και γεμίζει τα υπόλοιπα με τυχαία bit, έτσι τα αναγνωριστικά ταξινομούνται κατά χρόνο δημιουργίας.
Αυτή η διάταξη είναι ο λόγος να εξετάσετε την v7 για πρωτεύοντα κλειδιά βάσεων δεδομένων. Τα τυχαία κλειδιά v4 πέφτουν σε τυχαία σημεία ενός ευρετηρίου B-tree, χωρίζοντας σελίδες και χειροτερεύοντας την τοπικότητα της κρυφής μνήμης καθώς μεγαλώνει ο πίνακας, ενώ τα κλειδιά v7 καταφθάνουν σε περίπου αύξουσα σειρά, όπως μια στήλη αυτόματης αρίθμησης, και πάλι χωρίς κεντρικό μετρητή. Επιλέξτε v4 όταν θέλετε αναγνωριστικό που δεν αποκαλύπτει τίποτα, ούτε πότε δημιουργήθηκε· επιλέξτε v7 όταν μετρούν η απόδοση εισαγωγών και η χρονική ταξινόμηση. Ένα UUID είναι αναγνωριστικό, όχι μυστικό: για κωδικούς πρόσβασης και μυστικά API χρησιμοποιήστε ειδική δημιουργία κωδικών πρόσβασης. Περισσότερους κωδικοποιητές και εργαλεία ελέγχου θα βρείτε στα εργαλεία για προγραμματιστές.
Συχνές ερωτήσεις
- Μπορούν δύο τυχαία UUID να είναι ποτέ ίδια;
- Θεωρητικά ναι, πρακτικά όχι. Με 122 τυχαία bit, ακόμη και ένα δισεκατομμύριο UUID v4 το δευτερόλεπτο για περίπου 86 χρόνια θα έδιναν μόνο περίπου 50% πιθανότητα για μία σύγκρουση, εφόσον η πηγή τυχαιότητας είναι αξιόπιστη.
- Ποια είναι η διαφορά ανάμεσα σε UUID και GUID;
- Ουσιαστικά καμία. Το GUID είναι η ονομασία της Microsoft για το ίδιο αναγνωριστικό 128 bit. Ορισμένα εργαλεία της Microsoft εμφανίζουν τα GUID με κεφαλαία ή μέσα σε άγκιστρα, κάτι που ο έλεγχος εδώ δέχεται.
- Πώς καταλαβαίνω ποια έκδοση είναι ένα UUID;
- Δείτε το πρώτο ψηφίο της τρίτης ομάδας: το 4 σημαίνει τυχαίο, το 7 χρονικά ταξινομημένο, το 1 χρονοσήμανση και κόμβο. Επικολλήστε το στον έλεγχο UUID για να δείτε την έκδοση και την παραλλαγή.
- Να χρησιμοποιήσω UUIDv7 αντί για v4 ως κλειδιά βάσης δεδομένων;
- Συχνά ναι. Τα κλειδιά v7 είναι χρονικά ταξινομημένα, κάτι που κρατά τα ευρετήρια B-tree συμπαγή και τις εισαγωγές γρήγορες. Μείνετε στην v4 αν ο χρόνος δημιουργίας που ενσωματώνει ένα αναγνωριστικό v7 πρέπει να παραμείνει ιδιωτικός.
- Είναι ασφαλές να χρησιμοποιήσω ένα UUID ως token επαναφοράς κωδικού;
- Ένα UUID v4 από ασφαλή γεννήτρια έχει 122 τυχαία bit, αρκετά ώστε να μην μαντεύεται, αλλά πολλές βιβλιοθήκες προσφέρουν ειδικές συναρτήσεις tokens με ρητή λήξη. Μην χρησιμοποιείτε ποτέ χρονικές εκδόσεις όπως v1 ή v7 ως μυστικά.