IdCraft.js: βιβλιοθήκη javascript για δημιουργία και έλεγχο UUID (v4, v7) και NanoID
Το IdCraft.js είναι μια βιβλιοθήκη JavaScript για τη δημιουργία και την ανάλυση κρυπτογραφικά ισχυρών αναγνωριστικών (identifiers). Σχεδιασμένο ως ένα αυτόνομο module χωρίς εξωτερικές εξαρτήσεις (zero-dependency), παρέχει ένα ενιαίο περιβάλλον εργασίας για τα πρότυπα UUID, NanoID, ULID, καθώς και για προηγμένη ανάλυση εντροπίας συμβολοσειρών.
Κύρια Χαρακτηριστικά
Η βιβλιοθήκη είναι δομημένη γύρω από τέσσερις βασικούς πυλώνες:
1. Δημιουργία UUID (v4 και v7)
Εκτός από το τυπικό τυχαίο UUID v4, το IdCraft.js υποστηρίζει το σύγχρονο πρότυπο v7. Τα αναγνωριστικά UUID v7 ενσωματώνουν ένα timestamp 48-bit, επιτρέποντας τη χρονολογική τους ταξινόμηση, γεγονός που βελτιστοποιεί σημαντικά την ευρετηρίαση (indexing) σε βάσεις δεδομένων. Για τη δημιουργία v4, η βιβλιοθήκη χρησιμοποιεί τη μητρική μέθοδο crypto.randomUUID() όπου αυτή είναι διαθέσιμη. Για το v7, διαθέτει μια πανίσχυρη υλοποίηση με διατήρηση της μονοτονίας (monotonicity preservation), αυτόματη διαχείριση υπερχείλισης του 12-bit μετρητή (sequence overflow) και προστασία από παλινδρόμηση ρολογιού (clock regression, π.χ. ρυθμίσεις NTP).
2. Δημιουργία NanoID & ULID
Το IdCraft.js επιτρέπει τη δημιουργία εναλλακτικών σύγχρονων αναγνωριστικών. Υποστηρίζει σύντομα, φιλικά προς URL NanoID με πλήρως παραμετροποιήσιμα μήκη και αλφάβητα, συμπεριλαμβάνοντας ειδική λογική για την εξάλειψη του modulo bias. Επιπλέον, προσφέρει εγχώρια υποστήριξη για τη δημιουργία ULID (Universally Unique Lexicographically Sortable Identifier), παρέχοντας μια εναλλακτική λύση 26 χαρακτήρων (case-insensitive, base32-encoded) για συστήματα που απαιτούν χρονολογική ταξινόμηση.
3. Ανάλυση Εντροπίας & Τυχαιότητας
Μια εξελιγμένη προσθήκη στη σουίτα είναι ο Αναλυτής Εντροπίας (Entropy Analyzer). Η βιβλιοθήκη μπορεί να υπολογίσει την ακριβή κρυπτογραφική ισχύ οποιασδήποτε συμβολοσειράς χρησιμοποιώντας τους μαθηματικούς τύπους της Εντροπίας Shannon (Shannon Entropy). Αναλύει τα σύνολα χαρακτήρων, εντοπίζει μοτίβα και μετρά την ισχύ κωδικών πρόσβασης ή tokens σε bits, βοηθώντας τους προγραμματιστές να επιβάλλουν αυστηρά πρότυπα ασφαλείας.
4. Επιθεώρηση και Αποδόμηση
Ένα ξεχωριστό χαρακτηριστικό της βιβλιοθήκης είναι η ικανότητά της να πραγματοποιεί βαθύ έλεγχο σε υφιστάμενα UUIDs. Ο ενσωματωμένος επιθεωρητής (inspector) αναγνωρίζει την έκδοση του UUID και εξάγει πολύτιμα ενσωματωμένα μεταδεδομένα, όπως:
- Την ακριβή ημερομηνία και ώρα δημιουργίας (για v1 και v7).
- Τον σχετικό χρόνο που παρήλθε από τη δημιουργία (π.χ. "πριν από 5 λεπτά").
- Πληροφορίες υλικού (hardware node) και διευθύνσεις MAC (για v1).
Τεχνικές Προδιαγραφές
- Ασφάλεια: Αποκλειστική χρήση του Web Crypto API (
crypto.getRandomValues) για τη διασφάλιση μέγιστης εντροπίας και την εξάλειψη της προβλεψιμότητας. - Μηδενικές Εξαρτήσεις (Zero Dependencies): Χωρίς εξωτερικά πακέτα, εξασφαλίζοντας εύκολη ενσωμάτωση χωρίς να επιβαρύνεται το production bundle του project σας.
- Συμμόρφωση με Πρότυπα: Πλήρης συμμόρφωση με τα επίσημα πρότυπα RFC 9562 για τα UUIDs και τις προδιαγραφές της κοινότητας για τα NanoID και ULID.
Άδεια Χρήσης
Το IdCraft.js είναι λογισμικό ανοικτού κώδικα που διατίθεται υπό την άδεια GNU GPL v3.0 ή μεταγενέστερη. Μπορείτε να δοκιμάσετε όλες τις λειτουργίες του ζωντανά μέσα από την ενσωματωμένη σουίτα των online εργαλείων μας:
Ανοικτός Κώδικας & Κοινότητα
Το IdCraft.js είναι πλήρως open-source και φιλοξενείται στο GitHub. Πιστεύουμε στη δημιουργία διαφανούς, ασφαλούς λογισμικού που καθοδηγείται από την κοινότητα. Προγραμματιστές από όλο τον κόσμο είναι ευπρόσδεκτοι να επιθεωρήσουν τον κώδικα, να αναφέρουν σφάλματα (bugs), να προτείνουν νέους αλγορίθμους ή να συνεισφέρουν στην ανάπτυξή του.
Είτε αναπτύσσετε μια web εφαρμογή στην πλευρά του client είτε μια microservice σε Node.js στην πλευρά του διακομιστή, η ενσωμάτωση του IdCraft.js είναι απλή. Μπορείτε να κάνετε clone το αποθετήριο, να κατεβάσετε τα έτοιμα αρχεία build για production ή να συμμετάσχετε στο project υποβάλλοντας Pull Requests (PRs).
Ξεκινήστε Τώρα: Δείτε τον πηγαίο κώδικα, δώστε ένα star στο project και συνεισφέρετε στο επίσημο αποθετήριο στο GitHub: github.com/kritikov/IdCraft


