Μετάβαση στο περιεχόμενο

Δωρεάν Γεννήτρια Nano ID - Ασφαλή Μοναδικά IDs Φιλικά προς URL Online

Δημιουργήστε αμέσως ασφαλή Nano IDs! Δωρεάν διαδικτυακό εργαλείο που παράγει συμπαγή, μοναδικά αναγνωριστικά φιλικά προς URL 42% μικρότερα από το UUID. Ιδανικά για βάσεις δεδομένων, API, διακριτικά & συστήματα.

Το μήκος του παραγόμενου Nano ID (1-100 χαρακτήρες)

Επιλέξτε το σύνολο χαρακτήρων για το Nano ID σας

Παραγόμενο Nano ID

Εισαγάγετε μια τιμή για να δείτε τα αποτελέσματα

Απεικόνιση

Υπολογιστής φόρτωσης...
📚

Τεκμηρίωση

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

Τι είναι ένα Nano ID;

Ένα Nano ID είναι μια τυχαία παραγόμενη συμβολοσειρά που χρησιμοποιείται για την επισήμανση κάποιου στοιχείου, ώστε να διακρίνεται από κάθε άλλο. Ο προγραμματιστής Andrey Sitnik δημιούργησε τη μορφή το 2017 ως μικρότερη εναλλακτική του UUID (Universally Unique Identifier), ενός αναγνωριστικού 36 χαρακτήρων που χρησιμοποιείται ευρέως στην πληροφορική. Ένα προεπιλεγμένο Nano ID έχει μήκος 21 χαρακτήρες, σε σύγκριση με τους 36 χαρακτήρες ενός UUID, δηλαδή είναι περίπου 42% μικρότερο.

Πώς δημιουργείται ένα Nano ID με αυτό το εργαλείο

Η γεννήτρια αυτής της σελίδας δημιουργεί ένα Nano ID από δύο ρυθμίσεις.

  1. Μήκος: ακέραιος αριθμός από 1 έως 100. Η προεπιλογή είναι 21.
  2. Σύνολο χαρακτήρων: η ομάδα χαρακτήρων από την οποία δημιουργείται το ID. Η προεπιλογή είναι το αλφαριθμητικό σύνολο.

Εισαγάγετε μήκος, επιλέξτε σύνολο χαρακτήρων και πατήστε «Generate» για να δημιουργήσετε ένα ID. Πατήστε «Copy» για να το αντιγράψετε ή «Reset» για να επιστρέψετε σε μήκος 21 και στο αλφαριθμητικό σύνολο. Ένα νέο ID εμφανίζεται επίσης αυτόματα κάθε φορά που αλλάζει το μήκος ή το σύνολο χαρακτήρων. Κάτω από τα κουμπιά, το εργαλείο εμφανίζει κάθε χαρακτήρα του ID ως χρωματιστό πλακίδιο: μπλε για κεφαλαίο γράμμα, πράσινο για πεζό γράμμα, πορτοκαλί για ψηφίο και γκρι για σημείο στίξης.

Αν το μήκος δεν είναι ακέραιος αριθμός μεταξύ 1 και 100, το εργαλείο εμφανίζει το μήνυμα «Το μήκος πρέπει να είναι ακέραιος αριθμός μεταξύ 1 και 100» και δεν παράγει ID.

Διαθέσιμα σύνολα χαρακτήρων

Το εργαλείο προσφέρει επτά προκαθορισμένα σύνολα χαρακτήρων. Δεν δέχεται προσαρμοσμένο αλφάβητο που πληκτρολογεί ο χρήστης. Το σύνολο «With Symbols» προσθέτει αυτά τα 26 σημεία στίξης στο αλφαριθμητικό σύνολο: ! @ # $ % ^ & * ( ) _ + - = [ ] { } | ; : , . < > ?.

Σύνολο χαρακτήρωνΧρησιμοποιούμενοι χαρακτήρεςΜέγεθος αλφαβήτου
Αλφαριθμητικό (προεπιλογή)A-Z, a-z, 0–962
Ασφαλές για URLA-Z, a-z, 0-9, -, _64
Αριθμητικό0–910
ΑλφαβητικόA-Z, a-z52
Πεζάa-z26
ΚεφαλαίαA-Z26
Με σύμβολαA-Z, a-z, 0–9 και 26 σημεία στίξης88

Το αλφαριθμητικό σύνολο επιλέγεται από προεπιλογή. Δεν περιλαμβάνει την παύλα και την κάτω παύλα του ασφαλούς για URL συνόλου, αν και τα γράμματα και τα ψηφία από μόνα τους μπορούν ήδη να τοποθετηθούν με ασφάλεια απευθείας σε URL.

Τύπος Nano ID

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

1id = random(alphabet, size)
2

Με τις προεπιλεγμένες ρυθμίσεις, το alphabet έχει 62 χαρακτήρες και το size είναι 21.

Λυμένο παράδειγμα

Με χρήση του προεπιλεγμένου αλφαριθμητικού αλφαβήτου και μήκος 21, ένα πιθανό παραγόμενο ID είναι:

1K7pQ2mZxT9vY4nR8jH3wL
2

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

Πώς υπολογίζεται η πιθανότητα σύγκρουσης

Επειδή ένα Nano ID επιλέγεται τυχαία, είναι δυνατό, αν και εξαιρετικά απίθανο, δύο παραγόμενα ID να ταιριάξουν. Αυτό ονομάζεται σύγκρουση. Η πιθανότητα να υπάρξει τουλάχιστον μία σύγκρουση μετά τη δημιουργία k ID ακολουθεί τα ίδια μαθηματικά με το «πρόβλημα των γενεθλίων»:

1P(collision) ≈ 1 - e^(-k² / (2n))
2

Εδώ, το n είναι ο αριθμός των πιθανών ID: το μέγεθος του αλφαβήτου υψωμένο στη δύναμη του μήκους του ID, ή n = alphabet_size^length.

Λυμένο παράδειγμα

Για την προεπιλεγμένη ρύθμιση, με αλφάβητο 62 χαρακτήρων και μήκος 21 χαρακτήρων:

1n = 62^21 ≈ 4.4 × 10^37 possible IDs
2

Η επίλυση του τύπου για πιθανότητα σύγκρουσης 1% δίνει:

1k ≈ 9.4 × 10^17 IDs
2

Αυτό σημαίνει ότι πρέπει να δημιουργηθούν περίπου 940 τετράκις εκατομμύρια ID προτού υπάρξει έστω 1% πιθανότητα να ταιριάξουν δύο από αυτά. Με ρυθμό δημιουργίας ενός εκατομμυρίου ID ανά δευτερόλεπτο, η επίτευξη αυτού του αριθμού θα απαιτούσε περίπου 29.700 έτη.

Η μετάβαση στο ασφαλές για URL αλφάβητο 64 χαρακτήρων αυξάνει ελαφρώς τον αριθμό, σε περίπου 1,3 × 10^18 ID για τον ίδιο κίνδυνο 1%, επειδή το μεγαλύτερο αλφάβητο αφήνει περισσότερα πιθανά ID προς επιλογή.

Το Nano ID σε σύγκριση με άλλα αναγνωριστικά

ΤύποςΜήκοςΠαρατηρήσεις
Nano ID21 χαρακτήρες, ρυθμιζόμενοΤυχαίο, συμπαγές, δεν ταξινομείται χρονολογικά
UUID36 χαρακτήρεςΤυποποιημένη μορφή, ευρεία υποστήριξη, περιέχει παύλες
ULID26 χαρακτήρεςΤαξινομήσιμο κατά χρόνο δημιουργίας
KSUID27 χαρακτήρεςΤαξινομήσιμο κατά χρόνο δημιουργίας, περιλαμβάνει χρονική σήμανση
Ακέραιος με αυτόματη αύξησηΜεταβάλλεταιΑπλό και διαδοχικό, αλλά προβλέψιμο και δύσκολο να συντονιστεί μεταξύ ξεχωριστών βάσεων δεδομένων

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

Ποιο είναι το προεπιλεγμένο μήκος και σύνολο χαρακτήρων ενός Nano ID;

Η προεπιλογή είναι 21 χαρακτήρες από το αλφαριθμητικό σύνολο χαρακτήρων: A-Z, a-z, 0-9, δηλαδή συνολικά 62 χαρακτήρες.

Υποστηρίζει αυτό το εργαλείο προσαρμοσμένο αλφάβητο;

Όχι. Προσφέρει επτά προκαθορισμένα σύνολα χαρακτήρων: αλφαριθμητικό, ασφαλές για URL, αριθμητικό, αλφαβητικό, πεζά, κεφαλαία και «With Symbols».

Σε τι διαφέρει ένα Nano ID από ένα UUID;

Ένα Nano ID είναι μικρότερο. Η προεπιλογή είναι 21 χαρακτήρες, έναντι 36 χαρακτήρων ενός UUID, δηλαδή περίπου 42% μικρότερο. Και τα δύο δημιουργούνται τυχαία και δεν είναι διαδοχικά.

Μπορεί ένα Nano ID να ταξινομηθεί βάσει του χρόνου δημιουργίας του;

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

Είναι ασφαλές να χρησιμοποιηθεί ένα Nano ID ως πρωτεύον κλειδί βάσης δεδομένων;

Ναι. Θα πρέπει να αποθηκεύεται ως στήλη κειμένου ή συμβολοσειράς και όχι ως αριθμός, με μοναδικό ευρετήριο για γρήγορες αναζητήσεις.

Πόσα πιθανά Nano ID υπάρχουν;

Εξαρτάται από το επιλεγμένο μήκος και σύνολο χαρακτήρων. Με το προεπιλεγμένο αλφάβητο 62 χαρακτήρων και μήκος 21 χαρακτήρων, υπάρχουν 62^21, περίπου 4,4 × 10^37, πιθανά ID.

Παραπομπές

  1. Sitnik, Andrey. "Nano ID." GitHub, https://github.com/ai/nanoid.
  2. "Universally unique identifier." Wikipedia, Ίδρυμα Wikimedia, https://en.wikipedia.org/wiki/Universally_unique_identifier.
  3. "ULID Spec." GitHub, https://github.com/ulid/spec.