TokenToolkit.js: μια Local-First JavaScript βιβλιοθήκη για JWT, Base64, URL & Hashing
Το TokenToolkit.js είναι ένα ελαφρύ ES6 JavaScript Module, χωρίς εξωτερικές εξαρτήσεις (zero-dependency), σχεδιασμένο ως ένα ενιαίο facade για σε βάθος ανάλυση JWT, έλεγχο ασφάλειας, streaming αρχείων Base64, επεξεργασία HTML entities, URL parsing και κρυπτογραφικό hashing στο client-side.
Η βιβλιοθήκη διαχωρίζει τη βασική λογική επεξεργασίας δεδομένων από τα UI components των εργαλείων του nKode, επιτρέποντας στους προγραμματιστές να ενσωματώσουν έναν ασφαλή, local-first μηχανισμό ελέγχου tokens και μετασχηματισμού δεδομένων στις δικές τους εφαρμογές.
Αποκωδικοποίηση & Δομικός Έλεγχος JWT
Η κεντρική μηχανή του TokenToolkit.js διαθέτει μια προηγμένη σουίτα ανάλυσης για JSON Web Tokens, αποτελώντας την τεχνική βάση για το online εργαλείο JWT Decoder & Inspector:
- Αποδόμηση στο Client-Side: Διαχωρίζει, ομαλοποιεί και αποκωδικοποιεί τη δομή τριών μερών των τυπικών JWT απευθείας στον browser, διασφαλίζοντας ότι τα ευαίσθητα tokens δεν φεύγουν ποτέ από το μηχάνημα του χρήστη.
- Δομημένα Συστατικά: Μετατρέπει τις ακατέργαστες κρυπτογραφικές συμβολοσειρές σε διαδραστικά αντικείμενα JavaScript, εκθέτοντας ξεχωριστά πεδία για το Header, το Payload και το Signature του token.
Εμπλουτισμός Claims & Έξυπνος Έλεγχος
Η βιβλιοθήκη ελαχιστοποιεί τον επαναλαμβανόμενο κώδικα (boilerplate), παρέχοντας άμεσα αξιοποιήσιμα διαγνωστικά δεδομένα:
- Αυτοματοποιημένη Μετατροπή Ώρας: Εντοπίζει τα τυπικά Unix timestamps (
exp,iat,nbf) και τα μετατρέπει σε ευανάγνωστες συμβολοσειρές UTC (formattedDate) για εύκολο έλεγχο λήξης. - Ευρετικοί Έλεγχοι Ασφάλειας: Ελέγχει κάθε μέρος του token και καταγράφει τυχόν ανωμαλίες (όπως Algorithm Confusion ή κακοσχηματισμένη δομή) σε έναν πίνακα
issues. Το toolkit περιλαμβάνει 66 ενσωματωμένους ελέγχους επικύρωσης. - Κατηγοριοποίηση Claims: Διαχωρίζει τα claims σε
standard(συμβατά με το RFC) καιcustomπεδία, παρέχοντας αναλυτικές περιγραφές για τα standard claims στο UI.
Προηγμένο Base64, Base64URL & File Streaming
Πέρα από τα JWT, η βιβλιοθήκη περιλαμβάνει ένα high-performance υποσύστημα Base64 για μετασχηματισμούς αρχείων, τροφοδοτώντας πλήρως τα εργαλεία Base64 Encoder και Base64 Decoder and Inspector:
- Έξυπνη Ομαλοποίηση: Δέχεται οποιαδήποτε Base64 συμβολοσειρά και διαχειρίζεται αυτόματα τις URL-safe παραλλαγές, τους χαρακτήρες padding (
=) που λείπουν, ή τα κενά, χωρίς να κρασάρει. - Serialization Αρχείου σε Base64: Μετατρέπει ακατέργαστα file blobs του browser ή δυαδικά αντικείμενα σε τυπικά Base64 data URLs, μέσω του εργαλείου Base64 from File.
- Hydration από Base64 σε Αρχείο: Εξάγει τους τύπους MIME και επεξεργάζεται εγγενώς byte arrays για να ανακατασκευάσει φυσικά, κατεβάσιμα αρχεία υψηλής πιστότητας μέσω του εργαλείου Base64 to File, εξολοκλήρου στο client-side.
URL Percent-Encoding & Δομικό Parsing
Η βιβλιοθήκη διαθέτει μια αποκλειστική μηχανή δομής URL, σχεδιασμένη να διαχειρίζεται αυστηρές προδιαγραφές κωδικοποίησης και inline διαγνωστικά στα εργαλεία URL Encoder, URL Decoder, και URL Parser:
- Ευέλικτοι Στόχοι Κωδικοποίησης: Προσφέρει ξεχωριστές λειτουργίες για πλήρη σειριοποίηση παραμέτρων (κωδικοποιώντας διαχωριστικά όπως
/,?,&) ή τυπική διατήρηση URI για τη διόρθωση σπασμένων συνδέσμων. - Βαθιά Αποδόμηση URL: Αναλύει raw links σε σημασιολογικά αντικείμενα, διαχωρίζοντας πρωτόκολλα, hostnames, θύρες (ports), αντικείμενα παραμέτρων (query parameters) και hash fragments.
- Συντακτικός Έλεγχος: Ελέγχει τις συμβολοσειρές πριν από την αποκωδικοποίηση, απομονώνοντας με ασφάλεια ημιτελή σύμβολα (ορφανά
%) ή μη έγκυρες μη-δεκαεξαδικές ακολουθίες (π.χ.%G1), επιστρέφοντας καθαρά σφάλματα αντί να προκαλέσει κρασάρισμα στον browser.
HTML Entities & Αντιμετώπιση XSS
Το toolkit ενσωματώνει μια μηχανή μετασχηματισμού HTML για ασφαλή κωδικοποίηση και αποκωδικοποίηση κειμένου, τροφοδοτώντας τα εργαλεία HTML Entities Encoder και HTML Entities Decoder:
- Προστασία από XSS: Παρέχει ασφαλείς μετατροπές μεταξύ απλού κειμένου και HTML entities, εξουδετερώνοντας χαρακτήρες υψηλού κινδύνου για code injection, όπως οι
<,>,&,", και'. - Ευρεία Συμβατότητα: Υποστηρίζει standard Named Entities, Decimal mappings και Hexadecimal ρυθμίσεις για πλήρη κάλυψη.
Μετατροπές Timestamp & Epoch Υψηλής Ακρίβειας
Για την εξάλειψη χειροκίνητων σφαλμάτων λόγω ζώνης ώρας, μια ντετερμινιστική μηχανή διαχειρίζεται τις μετατροπές epoch, λειτουργώντας κάτω από το καπό του Timestamp Converter:
- Αυτόματος Εντοπισμός: Αναγνωρίζει και διαχειρίζεται αυτόματα τόσο τα 10-ψήφια Unix timestamps (δευτερόλεπτα) όσο και τα 13-ψήφια JavaScript epoch ערכים (χιλιοστά του δευτερολέπτου).
- Τοπική Προσαρμογή (Localization): Αποδομεί τα timestamps ταυτόχρονα σε συμβολοσειρές ISO 8601, μορφή UTC/GMT και στην τοπική ώρα του συστήματος.
- Δεδομένα Ημερομηνίας: Επιστρέφει αντικείμενα με πλούσια δεδομένα, όπως αριθμό εβδομάδας, καταμέτρηση ημέρας έτους (day-of-year) και ελέγχους δίσεκτου έτους.
Παραγωγή Κρυπτογραφικών Hashes
Για client-side ψηφιακά αποτυπώματα δεδομένων, το TokenToolkit.js εκθέτει ένα βελτιστοποιημένο επίπεδο hashing που τροφοδοτεί το online Hash Generator:
- Πολλαπλοί Αλγόριθμοι: Παράγει ασφαλή message digests χρησιμοποιώντας καθιερωμένους αλγορίθμους, συμπεριλαμβανομένων των SHA-1, SHA-256, SHA-512 και MD5.
- Προτεραιότητα στην Ιδιωτικότητα: Επεξεργάζεται τα δεδομένα ασύγχρονα χρησιμοποιώντας τις εγγενείς κρυπτογραφικές λειτουργίες του browser, διατηρώντας τα δεδομένα αυστηρά τοπικά.
Παράδειγμα Χρήσης (Quick Start)
Η ενσωμάτωση της βιβλιοθήκης είναι απλή και βασίζεται σε τυπικά ES6 native imports:
import TokenToolkit from "./TokenToolkit.js";
// 1. Έλεγχος και ανάλυση ενός JSON Web Token
const tokenResult = TokenToolkit.decodeJWT("your.raw.jwt");
if (tokenResult.valid) {
const jwt = tokenResult.jwt;
console.log(jwt.toJSON()); // Καθαρή έξοδος JSON
}
// 2. Ασφαλής URL-Safe Base64 κωδικοποίηση χωρίς padding
const b64Result = TokenToolkit.encodeToBase64("Hello nKode!", {
base64Url: true,
removePadding: true
});
console.log(b64Result.encodedText); // "SGVsbG8gbktvZGUh"
// 3. Αξιόπιστο URL Parsing και ανάλυση
const parsedUrl = TokenToolkit.parseUrl("https://nkode.gr/GR/tools?query=token&sort=desc");
console.log(parsedUrl.host); // "nkode.gr"
console.log(parsedUrl.queryParams); // { query: "token", sort: "desc" }
// 4. Εγγενές HTML Entity Escaping (Προστασία XSS)
const htmlResult = TokenToolkit.encodeHtmlEntities("<script>alert('xss')</script>");
console.log(htmlResult.encodedText); // "<script>alert('xss')</script>"
// 5. Ολοκληρωμένη μετατροπή Epoch & Timestamp
const timeResult = TokenToolkit.convertTimestamp(1778112000);
if (timeResult.valid) {
console.log("ISO Date:", timeResult.telemetry.iso);
}
// 6. Υπολογισμός Κρυπτογραφικού Hash
const hashResult = await TokenToolkit.generateHash("nKoding loops", "SHA-256");
console.log(hashResult.hexDigest); // Παραγωγή ασφαλούς SHA-256 hex string
Διαθεσιμότητα
Η βιβλιοθήκη διανέμεται υπό την open-source άδεια GNU GPL v3.0. Το λογισμικό ανοιχτού κώδικα οφείλει να σέβεται την εμπιστευτικότητα των δεδομένων (privacy-by-design) και είστε ευπρόσδεκτοι να ελέγξετε τον πηγαίο κώδικα, να αναφέρετε θέματα (issues) ή να υποβάλετε pull requests.
Ο πηγαίος κώδικας είναι διαθέσιμος στο GitHub μέσω του επίσημου TokenToolkit GitHub Repository
Για να το δείτε στην πράξη, μπορείτε να ελέγξετε και να αναλύσετε τα δεδομένα σας ζωντανά χρησιμοποιώντας τα Online Εργαλεία για Προγραμματιστές που παρέχει το nKode.


