Δημιουργία UUID (v1, v4, v5, v7)
- Πίνακας ελέγχου
- Τεκμηρίωση
- API
Γιατί να χρησιμοποιήσετε UUID;
Τα UUID (Universally Unique Identifiers) είναι μοναδικά αναγνωριστικά που χρησιμοποιούνται για τη διασφάλιση της μοναδικότητας σε διαφορετικά συστήματα και βάσεις δεδομένων χωρίς να απαιτείται κεντρικός συντονισμός. Χρησιμοποιούνται συνήθως σε κατανεμημένα συστήματα και διαδικτυακές εφαρμογές για τη δημιουργία μοναδικών αναγνωριστικών για πόρους.
Υποστηριζόμενες εκδόσεις UUID
Αυτό το εργαλείο υποστηρίζει τις ακόλουθες εκδόσεις UUID:
- Έκδοση 1: με βάση τη χρονική σήμανση και τη διεύθυνση MAC.
- Έκδοση 4: δημιουργήθηκε τυχαία (που χρησιμοποιείται περισσότερο).
- Έκδοση 5: βασίζεται σε ένα δακτυλικό αποτύπωμα SHA-1 ενός χώρου ονομάτων και ενός ονόματος (ντετερμινιστική: το ίδιο ζεύγος ονομάτων + όνομα θα παράγει πάντα το ίδιο UUID).
- Έκδοση 7: προσωρινά ταξινομημένη, συνιστάται για σύγχρονα βασικά κλειδιά βάσης δεδομένων (λεξικογραφική ταξινόμηση = χρονολογική ταξινόμηση).
UUID v5: χώρος ονομάτων και όνομα
Για να δημιουργήσετε ένα UUID v5, πρέπει να επιλέξετε έναν τυπικό χώρο ονομάτων και να δώσετε ένα όνομα:
- DNS: για χρήση όταν το όνομα είναι όνομα τομέα (για παράδειγμα
cdrn.fr). - URL: για χρήση όταν το όνομα είναι URL (για παράδειγμα
https://cdrn.fr/). - OID: Χρησιμοποιείται όταν το όνομα είναι αναγνωριστικό αντικειμένου ISO.
- X500: Χρησιμοποιείται όταν το όνομα είναι διακεκριμένο όνομα X.500.
Δεδομένου ότι η παραγωγή είναι ντετερμινιστική, το UUID v5 είναι ιδιαίτερα κατάλληλο για την παραγωγή αναπαραγώγιμων αναγνωριστικών από σταθερά δεδομένα.
Πώς να δημιουργήσετε UUID
Στην αρχική σελίδα, μπορείτε να δημιουργήσετε UUID επιλέγοντας την επιθυμητή έκδοση από ένα αναπτυσσόμενο μενού και κάνοντας κλικ στο κουμπί δημιουργίας. Για την έκδοση 5, δώστε επίσης τον χώρο ονομάτων και το όνομα.
Μόλις δημιουργηθεί ένα UUID, θα εμφανιστεί σε μια πράσινη σειρά αποτελεσμάτων που υποδεικνύει ότι δημιουργήθηκε με επιτυχία. Εάν παρουσιαστεί σφάλμα, μια κόκκινη γραμμή θα εμφανίσει το αντίστοιχο μήνυμα σφάλματος.
Παραδείγματα κώδικα για τη χρήση UUID που δημιουργούνται
Μπορείτε να χρησιμοποιήσετε τα UUID που δημιουργούνται στις εφαρμογές σας ενσωματώνοντάς τα απευθείας στον κώδικά σας. Ακολουθεί ένα παράδειγμα στην PHP:
toString() . PHP_EOL;
echo "UUID v5:". $uuidV5->toString() . PHP_EOL;
echo "UUID v7: ". $uuidV7->toString() . PHP_EOL;
?>
Επικύρωση και ανάλυση UUID
Μπορείτε επίσης να επικυρώσετε και να αναλύσετε υπάρχοντα UUID για να προσδιορίσετε την έκδοση και την εγκυρότητά τους. Ακολουθεί ένα παράδειγμα κώδικα στην PHP:
getFields()->getVersion();
} αλλο {
echo "Μη έγκυρο UUID";
}
?>
Συχνές ερωτήσεις
Ποια είναι η διαφορά μεταξύ του UUID v1, v4, v5 και v7;
Το v1 συνδυάζει μια χρονική σήμανση και τη διεύθυνση MAC του μηχανήματος, η οποία μπορεί να αποκαλύψει ευαίσθητες πληροφορίες. Το v4 είναι καθαρά τυχαίο (122 τυχαία bit), είναι η πιο χρησιμοποιούμενη έκδοση. Το v5 είναι ντετερμινιστικό: το ίδιο ζεύγος namespace + name παράγει πάντα το ίδιο UUID χάρη σε έναν κατακερματισμό SHA-1. Το v7 περιλαμβάνει μια χρονική σήμανση σε χιλιοστά του δευτερολέπτου στην αρχή του αναγνωριστικού, γεγονός που το καθιστά ταξινομημένο χρονολογικά και ιδανικό για κύρια κλειδιά.
Ποια είναι η πιθανότητα σύγκρουσης ενός UUID v4;
Ένα UUID v4 έχει 122 τυχαία bit ή περίπου 5,3 × 10^36 πιθανές τιμές. Για να επιτευχθεί 50% πιθανότητα σύγκρουσης (παράδοξο γενεθλίων), θα πρέπει να δημιουργηθεί περίπου 2,7 × 10^18 UUID. Στην πράξη, σε μια τυπική εφαρμογή, η πιθανότητα σύγκρουσης είναι αμελητέα. Αυτό είναι που επιτρέπει τη δημιουργία αναγνωριστικών από την πλευρά του πελάτη χωρίς συντονισμό με έναν κεντρικό διακομιστή.
Γιατί να χρησιμοποιήσετε το UUID v7 για ένα πρωτεύον κλειδί βάσης δεδομένων;
Ένα UUID v4 που εισάγεται σε ένα ευρετήριο Β-δέντρου προκαλεί ισχυρό κατακερματισμό: κάθε εισαγωγή πέφτει σε τυχαία θέση, γεγονός που υποβαθμίζει την απόδοση και τη χρήση της προσωρινής μνήμης. Το UUID v7 ξεκινά με χρονική σήμανση σε χιλιοστά του δευτερολέπτου, επομένως οι νέες γραμμές εισάγονται πάντα στο τέλος του ευρετηρίου. Στη συνέχεια, η απόδοση εισαγωγής προσεγγίζει αυτήν ενός BIGSERIAL, ενώ διατηρεί τα πλεονεκτήματα ενός καθολικού αναγνωριστικού.
Για ποιους λόγους χρησιμοποιούνται οι χώροι ονομάτων DNS, URL, OID και X500 του UUID v5;
Αυτοί οι χώροι ονομάτων είναι UUID προκαθορισμένα στο RFC 4122 που λειτουργούν ως πρόθεμα συμφραζομένων για ντετερμινιστική δημιουργία. Το DNS χρησιμοποιείται με όνομα τομέα, το URL με πλήρες URL, το OID με αναγνωριστικό ISO αντικειμένου, το X500 με διακριτικό όνομα LDAP. Μπορείτε επίσης να ορίσετε τον δικό σας ιδιωτικό χώρο ονομάτων: ένα UUID v4 που δημιουργείται μία φορά για την εφαρμογή σας και χρησιμοποιείται ξανά ως ντετερμινιστική ρίζα για όλα τα αναγνωριστικά v5 σας.
UUID ή αυτόματη αύξηση για τα βασικά αναγνωριστικά;
Η αυτόματη αύξηση παραμένει πολύ αποτελεσματική για μονολιθικές βάσεις δεδομένων και αποκαλύπτει εύκολα τη σειρά γραφής, η οποία μπορεί να είναι ανεπιθύμητη από την πλευρά του δημόσιου API. Τα UUID είναι τα καλύτερα κατάλληλα για κατανεμημένες αρχιτεκτονικές, δημιουργία από την πλευρά του πελάτη, συγχωνεύσεις βάσεων δεδομένων και δημόσια έκθεση αδιαφανών αναγνωριστικών. Ο ιδανικός συμβιβασμός το 2026: UUID v7 στο πρωτεύον κλειδί, το οποίο συνδυάζει καθολικότητα, λογική αδιαφάνεια και καλή απόδοση ευρετηρίου.
Τα UUID που δημιουργούνται περνούν από διακομιστή τρίτου μέρους;
Η δημιουργία πραγματοποιείται στο περιβάλλον cdrn.fr, χωρίς κλήση εξωτερικής υπηρεσίας. Για αμιγώς τυχαίες (v4) ή προσωρινές (v7) εκδόσεις, δεν χρειάζονται ευαίσθητες πληροφορίες ως εισαγωγή. Για την έκδοση 5, ο χώρος ονομάτων και το όνομα που παρέχετε χρησιμοποιούνται μόνο για τοπικούς υπολογισμούς SHA-1. Δεν καταγράφονται αναγνωριστικά που δημιουργούνται, μπορείτε να χρησιμοποιήσετε το εργαλείο για να δημιουργήσετε UUID που προορίζονται για εμπιστευτικά περιβάλλοντα.
Παράδειγμα αιτήματος
curl -X POST https://cdrn.fr/api/v1/tools/uuid-generator/execute \
-H "Content-Type: application/json" \
-d '{"version":"uuid_version_1","quantity":3,"namespace":"namespace_dns","name":"..."}'
Σχήμα εισόδου
| Πεδίο | Τύπος | Απαιτείται | Προεπιλογή |
|---|---|---|---|
version |
choice (uuid_version_1, uuid_version_4, uuid_version_5, uuid_version_7) | ✓ | – |
quantity |
integer | ✓ | 3 |
namespace |
choice (namespace_dns, namespace_url, namespace_oid, namespace_x500) | – | – |
name |
string | – | – |
Σημεία πρόσβασης
GET https://cdrn.fr/api/v1/tools- εμφανίζει όλα τα διαθέσιμα εργαλείαGET https://cdrn.fr/api/v1/tools/uuid-generator- ανακτά το σχήμα αυτού του εργαλείουPOST https://cdrn.fr/api/v1/tools/uuid-generator/execute- εκτελεί αυτό το εργαλείο με payload JSON