Γεννήτρια UUID

Προσθήκη στη σελίδα Μεταπληροφορία

Άλλα εργαλεία

Δημιουργία UUID/GUID

Δημιουργία UUID/GUID

Το Universally Unique Identifier (UUID), γνωστό και ως Globally Unique Identifier (GUID), έχει χρησιμοποιηθεί ευρέως σε συστήματα υπολογιστών.

Είναι ένας κώδικας 128-bit που δημιουργείται από το σύστημα με βάση μεταβλητές και σταθερές: τρέχουσα ώρα, διεύθυνση MAC, κατακερματισμός SHA-1, χώρος ονομάτων MD5. Το τελικό αποτέλεσμα της δημιουργίας ενός UUID, που εμφανίζεται ως αλφαριθμητικός κώδικας 32 χαρακτήρων που χωρίζεται με παύλες, μπορεί να φαίνεται αυθαίρετο, αλλά στην πραγματικότητα είναι το αποτέλεσμα πολύπλοκων υπολογισμών. Έτσι, ένας υπολογιστής δεν «εφευρίσκει» έναν κωδικό, αλλά τον σχηματίζει από συγκεκριμένες τεχνικές ποσότητες που είναι σχετικές σε μια δεδομένη στιγμή.

Η πιθανότητα να δημιουργηθεί το ίδιο UUID σε δύο διαφορετικούς υπολογιστές σε διαφορετικούς χρόνους τείνει στο μηδέν, γεγονός που καθιστά δυνατή τη χρήση των κωδικών που προκύπτουν για την αναγνώριση σημείου/τοπικών δεδομένων χωρίς αναφορά στο κέντρο συντονισμού. Σήμερα, το UUID/GUID είναι πανταχού παρόν τόσο σε διαδικτυακά όσο και εκτός σύνδεσης δίκτυα και λειτουργεί αποτελεσματικά όχι μόνο στον παγκόσμιο χώρο του Διαδικτύου, αλλά και σε αυτόνομα συστήματα υπολογιστών.

Ιστορικό UUID

Οι κωδικοί UUID 128 bit χρησιμοποιήθηκαν για πρώτη φορά από την αμερικανική εταιρεία Apollo Computer τη δεκαετία του 1980. Βασίστηκαν στους απλούστερους κώδικες 64-bit που χρησιμοποιούνται στο Domain/OS και βρήκαν ευρεία χρήση στο υπολογιστικό περιβάλλον του Open Software Foundation.

Με την εμφάνιση των πρώτων πλατφορμών των Windows, το παγκοσμίως μοναδικό αναγνωριστικό γενικεύτηκε και τυποποιήθηκε. Η Microsoft υιοθέτησε το σχέδιο DCE από το Apollo Computer και κατοχύρωσε τον χώρο ονομάτων URN στο RFC 4122. Το 2005, το τελευταίο προτάθηκε ως νέο πρότυπο από το IETF και το UUID τυποποιήθηκε εντός της ITU.

Νωρίτερα το 2002, εντοπίστηκαν ζητήματα απόδοσης συστήματος κατά τη χρήση των UUID ως πρωταρχικών κλειδιών σε τοπικές βάσεις δεδομένων. Αυτά διορθώθηκαν στην έκδοση 4 προσθέτοντας ένα μη τυχαίο επίθημα με βάση την ώρα συστήματος του υπολογιστή. Η λεγόμενη προσέγγιση COMB (Combined GUID Time Identifier) ​​αύξησε τους κινδύνους αντιγραφής κώδικα, αλλά ταυτόχρονα βελτίωσε σημαντικά την απόδοση κατά την εργασία με τον Microsoft SQL Server.

Με την ανάπτυξη των τεχνολογιών πληροφορικής, το καθολικό μοναδικό αναγνωριστικό έπαψε να είναι ένα εξαιρετικά εξειδικευμένο τεχνικό εργαλείο και σήμερα όλοι μπορούν να το χρησιμοποιούν. Η πιθανότητα επανάληψης των δημιουργούμενων κωδικών δεν είναι ίση με το μηδέν, αλλά τείνει προς αυτήν, και κάθε ψηφιακή πληροφορία μπορεί να αναγνωριστεί από αυτούς, μετά την οποία μπορούν να συνδυαστούν σε μεμονωμένες συστοιχίες δεδομένων με ελάχιστους κινδύνους επανάληψης.

Πλεονεκτήματα UUID

Οι δημιουργοί παγκόσμιων μοναδικών κωδικών δεν απαιτούν κεντρική συμφωνία/συγχρονισμό δεδομένων και διατίθενται δωρεάν σε όλους τους χρήστες. Τα κύρια πλεονεκτήματα του UUID περιλαμβάνουν:

  • Ελάχιστοι κίνδυνοι "σύγκρουσης" (επανάληψης) κωδικών. Παρά τη μαζική χρήση τους, η πιθανότητα επανάληψης τείνει στο μηδέν.
  • Δυνατότητα σύνδεσης διαφορετικών συστοιχιών δεδομένων χρησιμοποιώντας UUID ως κύρια (μοναδικά) κλειδιά.
  • Απλοποιημένη διανομή δεδομένων σε πολλούς διασκορπισμένους διακομιστές.
  • Δυνατότητα δημιουργίας κωδικών εκτός σύνδεσης.

Οι μοναδικοί κωδικοί αναγνώρισης, γραμμένοι στη μορφή xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, επιτρέπουν στα διασκορπισμένα συστήματα να αναγνωρίζουν πληροφορίες χωρίς συντονισμό από ένα μόνο κέντρο δεδομένων: με σχεδόν μηδενική πιθανότητα σφαλμάτων/επαναλήψεων. Αυτή η δυνατότητα, μαζί με την ευκολία χρήσης και τις μικρές απαιτήσεις για απόδοση υπολογιστή, καθιστά το UUID σε ζήτηση και απαραίτητο σε μια μεγάλη ποικιλία βιομηχανιών πληροφορικής και αυτόνομων υπολογιστικών συστημάτων.

Παγκόσμια μοναδικό αναγνωριστικό

Παγκόσμια μοναδικό αναγνωριστικό

Το UUID μπορεί να δημιουργήσει κώδικες χρησιμοποιώντας διαφορετικούς αλγόριθμους και μεταβλητές/σταθερές τιμές.

Υπάρχουν συνολικά 5 εκδόσεις του αναγνωριστικού, που χρησιμοποιούν την ημερομηνία/ώρα συστήματος και τις διευθύνσεις MAC, τα πρωτόκολλα ασφαλείας DCE, τον κατακερματισμό MD5, τον κατακερματισμό SHA-1 και τον χώρο ονομάτων όταν δημιουργούνται.

Σε όλες τις περιπτώσεις, το τελικό αποτέλεσμα εμφανίζεται με τη μορφή xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (ένας αριθμός σε δεκαεξαδικό συμβολισμό, που αποτελείται από πεζά λατινικά γράμματα και αριθμούς και διαιρείται με παύλες σε πέντε μπλοκ: 8-4 -4-4- 12), το M σημαίνει έκδοση, το N σημαίνει παραλλαγή UUID.

Έτσι, το σύστημα χρησιμοποιεί 36 χαρακτήρες κάθε φορά (26 γράμματα και 10 αριθμούς), επομένως η πιθανότητα επανάληψης 32-ψήφιων κωδικών τείνει στο μηδέν, παρά το γεγονός ότι παράγονται καθημερινά από εκατομμύρια χρήστες σε όλο τον κόσμο.

Εκδόσεις UUID

Έκδοση 1

Η πρώτη έκδοση του μοναδικού αναγνωριστικού, κατά τη δημιουργία του κώδικα, βασίζεται στη διεύθυνση MAC του υπολογιστή και στην ώρα του συστήματός του, η οποία αλλάζει την αριθμητική του τιμή 1 φορά ανά δευτερόλεπτο. Η διαδικασία παραγωγής αποτελείται από πέντε στάδια:

  • Τα κατώτερα 32 bit πληροφοριών λαμβάνονται από την ετικέτα UTC. Μετατρέπονται σε 8 δεκαεξαδικούς χαρακτήρες και καταλαμβάνουν 4 byte.
  • Ο μέσος όρος 16 bit πληροφοριών λαμβάνονται από την ίδια ετικέτα UTC και μετατρέπονται σε 4 δεκαεξαδικούς χαρακτήρες που καταλαμβάνουν 2 byte.
  • Τα ανώτερα 12 bit πληροφοριών από την ετικέτα UTC λαμβάνονται και μετατρέπονται σε 4 ακόμη δεκαεξαδικούς χαρακτήρες.
  • Άλλα 1-3 bit πέφτουν στην ακολουθία του ρολογιού και μειώνουν τους κινδύνους συγκρούσεων εισάγοντας έναν βαθμό τυχαίας / αβεβαιότητας. Ο χρόνος συστήματος είτε επιβραδύνεται υπό όρους είτε μειώνεται - έτσι ώστε δύο ή περισσότερα αναγνωριστικά που εργάζονται στον ίδιο υπολογιστή ταυτόχρονα να μην "διασταυρώνονται".
  • Τα υπόλοιπα 6 byte είναι μια σταθερή τιμή που δημιουργείται με βάση τη διεύθυνση MAC της συσκευής. Αποτελείται από 12 δεκαεξαδικούς χαρακτήρες και έχει μέγεθος 48 bit.

Επειδή ο αλγόριθμος της πρώτης έκδοσης του UUID είναι άρρηκτα συνδεδεμένος με την ώρα του συστήματος, η χρήση της ακολουθίας του ρολογιού είναι υποχρεωτική. Διαφορετικά, οι κίνδυνοι δημιουργίας των ίδιων κωδικών αυξάνονται πολλές φορές - κατά τη διάρκεια του δεύτερου όταν ο χρόνος του συστήματος «παγώνει» σε μια ή την άλλη τιμή.

Έκδοση 2

Η δεύτερη έκδοση είναι ελάχιστα διαφορετική από την πρώτη και χρησιμοποιείται σπάνια στην πράξη. Αντί για μια ακολουθία ρολογιού, χρησιμοποιεί ένα αναγνωριστικό συστήματος που συνδέεται με δεδομένα χρήστη ή άλλες μοναδικές τιμές που δεν επαναλαμβάνονται σε άλλους υπολογιστές ή επαναλαμβάνονται πολύ σπάνια. Η επίδραση της τυχαιότητας στη δεύτερη έκδοση ελαχιστοποιείται και μπορεί να χρησιμοποιηθεί για τη βελτίωση της ασφάλειας ενός κατανεμημένου υπολογιστικού περιβάλλοντος.

Εκδόσεις 3 και 5

Έχουν πολλά κοινά: χρησιμοποιούν μοναδικά ονόματα και ονόματα (από το χώρο MD5) για τη δημιουργία κωδικών, δηλαδή μη τυχαίων τιμών. Μόνο η έκδοση 3 χρησιμοποιεί τυπικό κατακερματισμό, ενώ η έκδοση 5 χρησιμοποιεί κατακερματισμό SHA-1. Τέτοια αναγνωριστικά εξαρτώνται λιγότερο από τυχαίες μεταβλητές.

Έκδοση 4

Η δημιουργία αυτής της έκδοσης UUID είναι περισσότερο από 90% τυχαία. Έχει 6 bit για σταθερές τιμές και 122 για αυθαίρετες. Η εφαρμογή του αλγόριθμου είναι ότι 128 bit πληροφοριών δημιουργούνται πρώτα τυχαία και 6 από αυτά αντικαθίστανται από δεδομένα έκδοσης και παραλλαγής.

Ο ρόλος της γεννήτριας ψευδοτυχαίων αριθμών στην τέταρτη έκδοση είναι ο μέγιστος και εάν έχει πολύ απλό αλγόριθμο, οι κίνδυνοι επαναλήψεων/συγκρούσεων αυξάνονται σημαντικά. Παρόλα αυτά, είναι η τέταρτη έκδοση που είναι μακράν η πιο κοινή και συχνά χρησιμοποιείται στην πράξη.

Επιλογές UUID

Το μοναδικό UUID έχει βελτιωθεί αρκετές φορές καθώς αναπτύσσεται η τεχνολογία των υπολογιστών και σήμερα παρουσιάζεται σε διάφορες εκδόσεις.

Επιλογή 0

Σχεδιασμένο για να λειτουργεί με παλαιού τύπου βάσεις δεδομένων μορφής Apollo Network Computing System 1.5 1988. Αυτή η επιλογή είναι συμβατή με αυτά και δεν έρχεται σε διένεξη με τα ιστορικά UUID του NCS.

Επιλογές 1 και 2

Χρησιμοποιείται για τον προσδιορισμό σύγχρονων μπλοκ δεδομένων και πινάκων και σε μορφή κανονικού κειμένου δεν διαφέρουν μεταξύ τους, εκτός από τη σειρά εγγραφής των παραλλαγών bit. Έτσι, η επιλογή 1 χρησιμοποιεί σειρά byte big-endian και η επιλογή 2 χρησιμοποιεί title-endian. Το πρώτο είναι το κύριο και το δεύτερο προορίζεται για εργασία με πρώιμα GUID από τα Microsoft Windows.

Επιλογή 3

Δεν χρησιμοποιείται αυτήν τη στιγμή. Είναι μια δεσμευμένη έκδοση για μελλοντική χρήση - όταν εξαντληθούν οι δυνατότητες των προηγούμενων επιλογών.

Τα περισσότερα συστήματα κωδικοποιούν το αναγνωριστικό σε big-endian, αλλά υπάρχουν και εξαιρέσεις. Για παράδειγμα, η ομαδοποίηση στις βιβλιοθήκες COM/OLE της Microsoft χρησιμοποιεί mixed-endian ενώ δημιουργεί κώδικα από τα block title-endian και big-endian. Το πρώτο είναι τα τρία πρώτα στοιχεία του UUID και το δεύτερο είναι τα δύο τελευταία.