- Αρχική
- Γεννήτρια UUID
Γεννήτρια UUID
Δημιουργήστε καθολικά μοναδικά αναγνωριστικά (UUIDs) χρησιμοποιώντας αλγόριθμους βασισμένους σε χρονική σήμανση για αποφυγή διπλότυπων.
Πώς Λειτουργούν τα UUIDs
UUID v1 (Βασισμένο σε Χρονική Σήμανση): Χρησιμοποιεί την τρέχουσα χρονική σήμανση (διαστήματα 100 νανοδευτερολέπτων από τις 15 Οκτωβρίου 1582) συνδυασμένη με διεύθυνση MAC ή τυχαίο αναγνωριστικό κόμβου. Αυτό εξασφαλίζει μοναδικότητα σε διαφορετικές μηχανές και αποτρέπει διπλότυπα ακόμα και κατά την ταυτόχρονη δημιουργία.
UUID v4 (Τυχαίο): Χρησιμοποιεί κρυπτογραφικά ισχυρούς τυχαίους αριθμούς. Παρόλο που θεωρητικά είναι δυνατά τα διπλότυπα, η πιθανότητα είναι τόσο χαμηλή (1 στα 2^122) που είναι αμελητέα για πρακτικούς σκοπούς.
UUID v7 (Σύγχρονη Χρονική Σήμανση): Η νεότερη έκδοση UUID που συνδυάζει χρονική σήμανση Unix (48 bits) με τυχαία δεδομένα (74 bits). Αυτό παρέχει τα οφέλη χρονικής ταξινόμησης του v1 διατηρώντας την ιδιωτικότητα του v4, καθιστώντας το ιδανικό για πρωτεύοντα κλειδιά βάσεων δεδομένων.
Μορφή: Τα UUIDs είναι τιμές 128-bit που εμφανίζονται ως 32 δεκαεξαδικά ψηφία στη μορφή: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Συνήθεις χρήσεις
Τα UUID (γνωστά και ως GUID) σας προσφέρουν μια πρακτικά απεριόριστη δεξαμενή μοναδικών αναγνωριστικών χωρίς συντονισμό με κεντρική αρχή. Μερικά σημεία όπου χρησιμοποιούνται συχνά:
Πρωτεύοντα κλειδιά βάσεων δεδομένων
Τα UUID επιτρέπουν σε πολλές υπηρεσίες ή shards να δημιουργούν κλειδιά ανεξάρτητα, χωρίς συγκρούσεις. Το UUID v7 προτιμάται όλο και περισσότερο, επειδή η αρχική χρονική σφραγίδα κρατά τις εισαγωγές γεωγραφικά κοντά στο ευρετήριο και τα ευρετήρια συμπαγή.
Κατανεμημένα συστήματα
Όταν τα συμβάντα παράγονται από πολλούς κόμβους, ένα UUID ανά συμβάν αποφεύγει το στενωπό ενός κεντρικού σειριακού μετρητή και κρατά τα αρχεία καταγραφής ιχνηλάσιμα σε όλες τις υπηρεσίες.
Αναγνωριστικά για χρήση στο κοινό
Ένα UUID v4 σε ένα URL δεν αποκαλύπτει πόσες εγγραφές υπάρχουν και δεν εκθέτει το σύστημα σε επιθέσεις αρίθμησης όπως κάνει ένας αυξανόμενος ακέραιος.
Κλειδιά ιδιότητας idempotent
Οι πελάτες δημιουργούν ένα UUID ανά αίτημα, ώστε ο διακομιστής να μπορεί να αναγνωρίζει τις επανάληψεις και να αποφεύγει την επεξεργασία της ίδιας ενέργειας δύο φορές.
Ποια έκδοση να χρησιμοποιήσετε;
- Χρησιμοποιήστε την v4 αν θέλετε απλή τυχαιότητα χωρίς πρόσθετες ιδιότητες - είναι η ασφαλέστερη προεπιλογή για τις περισσότερες εφαρμογές.
- Χρησιμοποιήστε την v7 αν το αναγνωριστικό θα είναι πρωτεύον κλειδί βάσης δεδομένων ή θα αποθηκευτεί σε οποιοδήποτε ευρετήριο όπου η σειρά εισαγωγής έχει σημασία. Η ενσωματωμένη χρονική σφραγίδα κάνει τις γραμμές να ομαδοποιούνται μαζί και βελτιώνει δραστικά την απόδοση εγγραφής σε μεγάλη κλίμακα.
- Χρησιμοποιήστε την v1 μόνο όταν πρέπει ρητά να παραγάγετε το αναγνωριστικό από χρονική σφραγίδα και αναγνωριστικό κόμβου. Στις σύγχρονες εφαρμογές η v7 είναι καλύτερη επιλογή για την ίδια περίπτωση, χωρίς να εκθέτει τη διεύθυνση MAC.
Συχνές ερωτήσεις
Τι είναι ένα UUID;
Το UUID (παγκοσμίως μοναδικό αναγνωριστικό) είναι μια τιμή 128-bit, συνήθως γραμμένη ως 32 hexadecimal digits στη μορφή xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Διαφορετικές εκδόσεις δημιουργούν την τιμή χρησιμοποιώντας διαφορετικές στρατηγικές (τυχαιότητα, χρονική σφραγίδα ή και τα δύο).
Ποια είναι η διαφορά ανάμεσα σε UUID και GUID;
Αναφέρονται στο ίδιο πράγμα. Το GUID (παγκοσμίως μοναδικό αναγνωριστικό) είναι η ονομασία που χρησιμοποιείται στο οικοσύστημα της Microsoft· το UUID είναι η ονομασία που χρησιμοποιείται στο RFC 4122 και παντού αλλού. Η μορφή και οι εγγυήσεις μοναδικότητας είναι πανομοιότυπες.
Εγγυάται η μοναδικότητα των UUID;
Όχι μαθηματικά εγγυημένα - όμως η πιθανότητα σύγκρουσης για το UUID v4 είναι περίπου 1 στις 2^122, πολύ κάτω από το όριο οποιασδήποτε πρακτικής εφαρμογής. Για τα UUID v1 και v7, η χρονική σφραγίδα και τα bits του κόμβου/της τυχαιότητας αποτρέπουν στην πράξη τις συγκρούσεις.
UUID v4 ή UUID v7 για πρωτεύοντα κλειδιά βάσεων δεδομένων;
Το UUID v7 είναι γενικά καλύτερο για πρωτεύοντα κλειδιά. Επειδή τα αρχικά του bits είναι μια χρονική σφραγίδα Unix, οι νέες γραμμές εισάγονται κοντά η μία στην άλλη στον δίσκο, κάτι που κρατά τα ευρετήρια συμπαγή και τις εγγραφές γρήγορες. Χρησιμοποιήστε το v4 μόνο όταν η σειρά εισαγωγής δεν πρέπει απολύτως να είναι αναγνωρίσιμη.
Χρειάζομαι έναν γεννήτορα UUID v1;
Σπάνια. Το UUID v1 περιλαμβάνει τη διεύθυνση MAC της μηχανής που το δημιουργεί (ή ένα τυχαίο υποκατάστατο), κάτι που μπορεί να διαρρεύσει πληροφορίες. Το UUID v7 προσφέρει την ίδια χρονολογική ταξινόμηση χωρίς αυτή την ανησυχία και είναι σχεδόν πάντα η καλύτερη επιλογή σήμερα.
Είναι δωρεάν αυτός ο γεννήτορας UUID;
Ναι. Όλη η δημιουργία γίνεται στο πρόγραμμα περιήγησής σας, δεν υπάρχει όριο στη χρήση και δεν απαιτείται λογαριασμός. Μπορείτε να δημιουργήσετε ξεχωριστά UUID εδώ ή να μεταβείτε στον μαζικό γεννήτορα για έως και 500 κάθε φορά.
Σχετικά εργαλεία
Άλλα δωρεάν εργαλεία από το Hexbon που ίσως σας φανούν χρήσιμα.