Τι κάνει αυτή τη γεννήτρια κωδικών διαφορετική;
Αυτή είναι μια γεννήτρια κωδικών με προτεραιότητα την ιδιωτικότητα, αποκλειστικά στο πρόγραμμα περιήγησης. Κάθε τυχαίο byte προέρχεται από την κρυπτογραφική γεννήτρια τυχαίων αριθμών του λειτουργικού σας συστήματος μέσω crypto.getRandomValues — ποτέ από Math.random. Η σελίδα δεν κάνει καμία αίτηση δικτύου για να δημιουργήσει έναν κωδικό και η παραγόμενη τιμή δεν φεύγει ποτέ από την καρτέλα σας. Ανοίξτε τον πίνακα Δικτύου στα DevTools και κάντε κλικ στο Δημιουργία: παραμένει σιωπηλό.
Πώς λειτουργεί αυτή η γεννήτρια κωδικών;
Το εργαλείο τρέχει εξ ολοκλήρου σε JavaScript μέσα στο πρόγραμμα περιήγησής σας. Δεν υπάρχει γύρος διακομιστή, κανένας φάρος αναλυτικών που μεταφέρει τον κωδικό και καμία απομακρυσμένη αίτηση γραμματοσειράς μετά τη φόρτωση της σελίδας.
- Seed από τον CSPRNG του ΛΣ. Κάθε τυχαίος ακέραιος προέρχεται από
crypto.getRandomValues(new Uint32Array(n))— την ίδια κρυπτογραφικά ασφαλή πηγή που χρησιμοποιεί το πρόγραμμα περιήγησης για υλικό κλειδιού TLS καιcrypto.randomUUID. ΤοMath.randomδεν καλείται ποτέ σκόπιμα· μια αναζήτηση σε όλο το έργο το επιβάλλει. - Συναρμολόγηση συνόλου χαρακτήρων. Η λειτουργία τυχαίων χαρακτήρων συνενώνει τις ενεργοποιημένες κλάσεις χαρακτήρων — κεφαλαία, πεζά, ψηφία, σύμβολα — σε ένα μόνο αλφάβητο. Η επιλογή «Εξαίρεση διφορούμενων» αφαιρεί στη συνέχεια οπτικά παρόμοια γλυφά (
0,O,o,1,l,I,|, backtick) ώστε ο κωδικός να μην είναι διφορούμενος όταν διαβάζεται δυνατά ή αντιγράφεται με το χέρι. - Αμερόληπτη δειγματοληψία ευρετηρίου. Η αντιστοίχιση ενός 32-bit ακέραιου χωρίς πρόσημο σε ένα ευρετήριο συνόλου χαρακτήρων αφελώς (modulo) εισάγει μια μικρή μεροληψία όταν το μέγεθος του συνόλου δεν διαιρεί το 2^32 ομοιόμορφα. Το εργαλείο χρησιμοποιεί δειγματοληψία απόρριψης: οποιοδήποτε δείγμα πέφτει στην ουρά modulo απορρίπτεται και ανασύρεται, οπότε κάθε χαρακτήρας στο σύνολο είναι εξίσου πιθανός.
- Μαζική δημιουργία. Για τη λειτουργία τυχαίων χαρακτήρων μπορείτε να ζητήσετε 1 έως 50 κωδικούς με ένα κλικ. Κάθε αποτέλεσμα αποδίδεται ως μια γραμμή με τη δική του εκτίμηση εντροπίας, κατηγορία ισχύος και κουμπί Αντιγραφή. Το κουμπί «Αντιγραφή όλων» συνενώνει τις γραμμές με χαρακτήρες νέας γραμμής ώστε να μπορείτε να επικολλήσετε σε ένα αρχείο CSV ή εισαγωγής θησαυροφυλακίου.
- Λειτουργία φράσης πρόσβασης. Γυρίστε τον διακόπτη λειτουργίας και η σελίδα φορτώνει με τεμπελιά τη Σύντομη Λίστα Λέξεων EFF #1 (1296 λέξεις αγγλικών δημόσιου τομέα) στην πρώτη χρήση. Φράσεις πέντε λέξεων δίνουν περίπου 51,7 bits εντροπίας — αρκετά για καθημερινούς λογαριασμούς και πολύ πιο εύκολες στη μνήμη από μια τυχαία σούπα 9 χαρακτήρων. Μετά από αυτή τη μία λήψη ίδιας προέλευσης, η σελίδα είναι ξανά σιωπηλή.
Γιατί να χρησιμοποιήσετε αυτή τη γεννήτρια κωδικών;
- Ο κωδικός σας δεν φεύγει ποτέ από το πρόγραμμα περιήγησής σας. Δεν υπάρχει τελικό σημείο διακομιστή, καμία κλήση αναλυτικών που μεταφέρει την τιμή, καμία απομακρυσμένη γραμματοσειρά, καμία τηλεμετρία. Ανοίξτε DevTools, δημιουργήστε έναν κωδικό και δείτε τον πίνακα Δικτύου να παραμένει κενός.
- Κρυπτογραφικά ασφαλής τυχαιότητα, εκ κατασκευής. Κάθε ακέραιος προέρχεται από
crypto.getRandomValues, με δειγματοληψία απόρριψης έναντι μεροληψίας modulo. Το πιο κοινό σφάλμα στις γεννήτριες κωδικών προγράμματος περιήγησης — η χρήσηMath.randomγια εντροπία — είναι δομικά αδύνατο εδώ. - Δύο λειτουργίες, ένα εργαλείο. Η λειτουργία τυχαίων χαρακτήρων παράγει συμβολοσειρές υψηλής εντροπίας για διαχειριστές κωδικών· η λειτουργία φράσης πρόσβασης παράγει ανθρώπινα-απομνημονεύσιμες συμβολοσειρές τύπου xkcd (
correct-horse-battery-staple) με τη Σύντομη Λίστα Λέξεων EFF #1. Ίδιο μοντέλο ιδιωτικότητας και στα δύο. - Διαφανής εντροπία. Κάθε παραγόμενη γραμμή δείχνει την εντροπία της σε bits και μια σαφή ετικέτα ισχύος, ώστε να βλέπετε με μια ματιά αν μια συμβολοσειρά 12 χαρακτήρων χωρίς σύμβολα είναι πραγματικά τόσο ισχυρή όσο μια φράση 5 λέξεων. Χωρίς διαφημιστικά φύλλα, μόνο οι αριθμοί.
Ποιες είναι οι συνήθεις εφαρμογές των δημιουργημένων κωδικών;
Όποτε χρειάζεστε ένα νέο τυχαίο μυστικό, αυτό είναι το εργαλείο που ελαχιστοποιεί την επιφάνεια εμπιστοσύνης:
- Εισαγωγές διαχειριστή κωδικών. Δημιουργήστε 50 ισχυρούς κωδικούς σε μία παρτίδα, κάντε κλικ στην Αντιγραφή όλων, επικολλήστε στην εισαγωγή CSV του θησαυροφυλακίου σας. Οι τιμές δεν πέρασαν ποτέ από κανέναν διακομιστή, οπότε δεν υπάρχει παράθυρο διαρροής μεταξύ δημιουργίας και αποθήκευσης.
- Κύριες φράσεις πρόσβασης. Μεταβείτε στη λειτουργία φράσης πρόσβασης, επιλέξτε 6 ή 7 λέξεις, προαιρετικά με κεφαλαίο πρώτο γράμμα κάθε λέξης και έχετε μια συμβολοσειρά υψηλής εντροπίας που μπορείτε πραγματικά να θυμάστε χωρίς να τη γράψετε. Περίπου 62 bits εντροπίας από 6 λέξεις — πολύ πάνω από το όριο για επίθεση εκτός σύνδεσης.
- Κλειδιά API και κουπόνια σε πλαϊνά έργα. Χρειάζεστε ένα εφάπαξ κοινό μυστικό για ένα κλειδί υπογραφής webhook ή έναν κωδικό βάσης δεδομένων ανάπτυξης; Δημιουργήστε μια συμβολοσειρά 32 χαρακτήρων πλούσια σε σύμβολα εδώ, αντιγράψτε την μία φορά και το μόνο μέρος που υπήρξε ποτέ κατά τη μεταφορά ήταν μέσα στη δική σας καρτέλα προγράμματος περιήγησης.
Πώς μοιάζει ένα παράδειγμα δημιουργημένου κωδικού;
Ορίστε μήκος 16, αφήστε και τις τέσσερις κλάσεις χαρακτήρων ενεργοποιημένες και κάντε κλικ στο Δημιουργία. Το σύνολο χαρακτήρων έχει 26 + 26 + 10 + 32 = 94 χαρακτήρες, οπότε κάθε δημιουργημένος χαρακτήρας φέρει log2(94) ≈ 6,55 bits εντροπίας. Δεκαέξι χαρακτήρες προσγειώνονται σε περίπου 104,9 bits — πολύ πάνω από το όριο των 80 bits «πολύ ισχυρός» και πρακτικά αδύνατο να σπάσει με ωμή βία με το τρέχον υλικό. Τώρα μεταβείτε στη λειτουργία φράσης πρόσβασης, επιλέξτε 5 λέξεις με το προεπιλεγμένο διαχωριστικό παύλας: cocktail-sprig-aspect-magenta-tonic φέρει log2(1296) x 5 ≈ 51,7 bits. Αξέχαστο, πληκτρολογήσιμο και ισχυρότερο από τον μέσο ανθρώπινο κωδικό.
Δημιουργήστε, αντιγράψτε, προχωρήστε. Η σελίδα δεν βλέπει ποτέ διακομιστή, ο κωδικός δεν φεύγει ποτέ από την καρτέλα σας και η εντροπία υπολογίζεται από πρώτες αρχές. Αυτή είναι η όλη υπόσχεση.