TextToolbox Άμεσα εργαλεία κειμένου

Γεννήτρια UUID

Ρυθμίστε τις επιλογές σας και δημιουργήστε — κάθε UUID δημιουργείται φρέσκο στο πρόγραμμα περιήγησής σας, τίποτα δεν ανεβαίνει πουθενά.

RFC 4122 έκδοση 4, με πραγματική εναλλακτική

Αυτή η γεννήτρια χρησιμοποιεί την crypto.randomUUID(), μια ενσωματωμένη μέθοδο του προγράμματος περιήγησης που επιστρέφει απευθείας ένα σύμφωνο με το πρότυπο UUID v4 — υποστηρίζεται καθολικά σε τρέχουσες εκδόσεις κάθε βασικού προγράμματος περιήγησης. Ως δίχτυ ασφαλείας, το εργαλείο διαθέτει επίσης μια τεκμηριωμένη εναλλακτική βασισμένη στην crypto.getRandomValues() που χτίζει με το χέρι την ίδια μορφή v4 (ρυθμίζοντας τα bit έκδοσης και παραλλαγής χειροκίνητα), η οποία χρησιμοποιείται αυτόματα αν η randomUUID δεν είναι διαθέσιμη σε κάποιο περιβάλλον. Και οι δύο διαδρομές χρησιμοποιούν κρυπτογραφικά ασφαλή τυχαία πηγή, όχι Math.random(). Οι επιλογές σας για κεφαλαία και χωρίς ενωτικά εφαρμόζονται στο αποτέλεσμα εκ των υστέρων ως απλοί μετασχηματισμοί κειμένου.

Παράδειγμα

Δημιουργώντας ένα UUID μπορεί να προκύψει 502fb771-2b2b-4f9f-bb91-ffc7ee8269f2. Παρατηρήστε το 4 στην αρχή της τρίτης ομάδας — αυτό είναι το σταθερό ψηφίο έκδοσης — και το b στην αρχή της τέταρτης ομάδας, το οποίο είναι πάντα ένα από τα 8, 9, a, b, τα σταθερά bit παραλλαγής. Επιλέγοντας «Κεφαλαία» γίνεται 502FB771-2B2B-4F9F-BB91-FFC7EE8269F2· απενεργοποιώντας τα «Ενωτικά» γίνεται 502fb7712b2b4f9fbb91ffc7ee8269f2.

Συχνές ερωτήσεις

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

Ένα Universally Unique Identifier (παγκοσμίως μοναδικό αναγνωριστικό) είναι μια τιμή 128 bit, που συνήθως γράφεται ως 32 δεκαεξαδικά ψηφία σε πέντε ομάδες χωρισμένες με ενωτικά (8-4-4-4-12), και χρησιμοποιείται για να επισημάνει κάτι — μια εγγραφή βάσης δεδομένων, μια συνεδρία, ένα αρχείο — χωρίς κεντρική αρχή που μοιράζει αριθμούς. Οποιαδήποτε δύο συστήματα μπορούν να δημιουργήσουν UUID ανεξάρτητα και, στην πράξη, δεν συγκρούονται ποτέ.

Τι σημαίνει «v4»;

Είναι μία από τις πολλές εκδόσεις UUID που ορίζονται από το RFC 4122, και περιγράφει πώς παράγονται τα bit. Η έκδοση 4 βασίζεται στην τυχαιότητα: εκτός από λίγα σταθερά bit έκδοσης και παραλλαγής, κάθε bit προέρχεται από γεννήτρια τυχαίων αριθμών. Αυτό διαφέρει από την έκδοση 1, η οποία κωδικοποιεί την τρέχουσα χρονοσφραγίδα και ένα αναγνωριστικό κόμβου — τα UUID v1 αποκαλύπτουν χονδρικά πότε (και μερικές φορές πού) δημιουργήθηκαν· τα v4 δεν αποκαλύπτουν τίποτα πέρα από τον εαυτό τους.

Είναι εγγυημένα μοναδικά;

Όχι μαθηματικά εγγυημένα — αλλά αρκετά κοντά ώστε να μην έχει σημασία στην πράξη. Ένα UUID v4 έχει 122 τυχαία bit, οπότε η πιθανότητα να δημιουργηθούν ποτέ δύο ίδια είναι αστρονομικά μικρή: θα χρειαζόταν να δημιουργείτε περίπου ένα δισεκατομμύριο UUID το δευτερόλεπτο για περίπου 85 χρόνια πριν η πιθανότητα μίας και μόνο σύγκρουσης φτάσει το 50%. Αντιμετωπίστε το ως μοναδικό· μην χτίσετε ένα σύστημα του οποίου το μόνο δίχτυ ασφαλείας είναι μια τυπική μαθηματική απόδειξη μηδενικών συγκρούσεων.

Μπορώ να τα χρησιμοποιήσω ως πρωτεύοντα κλειδιά βάσης δεδομένων;

Ναι, είναι συνηθισμένη πρακτική, με ένα πραγματικό αντιστάθμισμα που αξίζει να γνωρίζετε. Επειδή οι τιμές v4 είναι τυχαίες, η εισαγωγή τους σε ένα ευρετήριο (ειδικά ένα ομαδοποιημένο/B-tree πρωτεύον κλειδί) διασκορπίζει τις εγγραφές σε ολόκληρο το ευρετήριο αντί να τις προσθέτει στο τέλος, κάτι που μπορεί να κατακερματίσει το ευρετήριο και να επιβαρύνει την απόδοση εισαγωγής σε μεγάλη κλίμακα — σε αντίθεση με διαδοχικά ακέραια ή χρονικά διατεταγμένα αναγνωριστικά. Πολλές ομάδες αποδέχονται αυτό το κόστος για τα οφέλη των μη προβλέψιμων, συγχωνεύσιμων, χωρίς κεντρικό συντονισμό αναγνωριστικών· άλλες στρέφονται σε χρονικά διατεταγμένες παραλλαγές (όπως το UUIDv7) ειδικά για να το αποφύγουν. Δεν υπάρχει καθολικά σωστή επιλογή — εξαρτάται από τον όγκο εγγραφών και τα μοτίβα πρόσβασής σας.