Τυχαίος κωδικός πρόσβασης Γεννήτρια
Δημιουργήστε ασφαλείς τυχαίους κωδικούς πρόσβασης αμέσως στο πρόγραμμα περιήγησής σας. Προσαρμόστε τους τύπους μήκους και χαρακτήρων — δωρεάν, ιδιωτικά και χωρίς δεδομένα που αποστέλλονται σε κανένα διακομιστή.
Δημιουργήστε ασφαλείς τυχαίους κωδικούς πρόσβασης αμέσως στο πρόγραμμα περιήγησής σας. Προσαρμόστε τους τύπους μήκους και χαρακτήρων — δωρεάν, ιδιωτικά και χωρίς δεδομένα που αποστέλλονται σε κανένα διακομιστή.
Μια γεννήτρια τυχαίων κωδικών πρόσβασης παράγει συμβολοσειρές σχεδιασμένες να αντιστέκονται σε εικασίες και επιθέσεις ωμής βίας. Η ισχύς ενός κωδικού πρόσβασης που δημιουργείται εξαρτάται από το μήκος του και το αλφάβητο (σύνολο πιθανών χαρακτήρων) που χρησιμοποιείται: 12 χαρακτήρες από ένα αλφάβητο 94 χαρακτήρων (κεφαλαία + πεζά + ψηφία + σύμβολα) αποδίδουν περίπου 79 bit εντροπίας, που θεωρούνται άνετα για γενική χρήση. Οι μικρότεροι ή απλούστεροι κωδικοί πρόσβασης αποδίδουν λιγότερη εντροπία και είναι πιο αδύναμοι έναντι του σύγχρονου υλικού επίθεσης.
Ουσιαστικά, αυτή η γεννήτρια χρησιμοποιεί κρυπτογραφικά ασφαλείς τυχαίες πηγές (window.crypto.getRandomValues), όχι την απλούστερη Math.random που είναι ακατάλληλη για λόγους ασφαλείας. Η έξοδος είναι κατάλληλη για πραγματική χρήση ως κωδικοί πρόσβασης λογαριασμού, κλειδιά κρυπτογράφησης για προσωπική χρήση και οποιοδήποτε άλλο πλαίσιο όπου η απρόβλεπτη σημασία έχει σημασία.
Όλη η παραγωγή συμβαίνει στο πρόγραμμα περιήγησής σας. Ο κωδικός πρόσβασης δεν ταξιδεύει ποτέ σε διακομιστή, δεν καταγράφεται και δεν διατηρείται οπουδήποτε μπορούμε να έχουμε πρόσβαση. Για να χρησιμοποιήσετε τον κωδικό πρόσβασης που δημιουργήθηκε, αντιγράψτε τον απευθείας στον προορισμό — έναν διαχειριστή κωδικών πρόσβασης, φόρμα δημιουργίας λογαριασμού ή όπου χρειάζεται.
Οι άνθρωποι επιλέγουν προβλέψιμους κωδικούς πρόσβασης. Μελέτες βάσεων δεδομένων με παραβιασμένους κωδικούς πρόσβασης δείχνουν σταθερά ότι τα ίδια απλά μοτίβα εμφανίζονται εκατομμύρια φορές: '123456', 'password', λέξεις λεξικού με επισυναπτόμενο αριθμό, ονόματα κατοικίδιων και μελών της οικογένειας. Οι δημιουργημένοι τυχαίοι κωδικοί πρόσβασης αποφεύγουν εντελώς αυτά τα μοτίβα.
Η επαναχρησιμοποίηση κωδικών πρόσβασης σε όλους τους λογαριασμούς αποτελεί επίσης σημαντικό κίνδυνο. Όταν η βάση δεδομένων ενός ιστότοπου διαρρέει, κάθε άλλος λογαριασμός που χρησιμοποιεί τον ίδιο κωδικό πρόσβασης παραβιάζεται. Μοναδικοί τυχαίοι κωδικοί πρόσβασης για κάθε λογαριασμό, αποθηκευμένοι σε έναν διαχειριστή κωδικών πρόσβασης, εξαλείφουν αυτό το διάνυσμα επίθεσης. Η γεννήτρια παράγει έναν νέο μοναδικό κωδικό πρόσβασης κάθε φορά.
Ορίστε το μήκος και το σύνολο χαρακτήρων, δημιουργήστε.
Το window.crypto.getRandomValues γεμίζει έναν πληκτρολογημένο πίνακα με κρυπτογραφικά ασφαλή τυχαία byte που προέρχονται από την ασφαλή τυχαία πηγή του προγράμματος περιήγησης. Κάθε χαρακτήρας του κωδικού πρόσβασης επιλέγεται αντιστοιχίζοντας τυχαία byte στο επιλεγμένο αλφάβητο, με δειγματοληψία απόρριψης για αποφυγή μεροληψίας modulo.
Εντροπία: log2 (alphabet_size^length). 12 χαρακτήρες από αλφάβητο 94 χαρακτήρων = 12 × log2(94) ≈ 78,7 bit. 16 χαρακτήρες από αλφάβητο 62 χαρακτήρων (μόνο αλφαριθμητικό) ≈ 95,3 bit. Η υψηλότερη εντροπία είναι εκθετικά δυσκολότερη στην ωμή βία.
Πρακτικά ποσοστά επίθεσης: οι σύγχρονες GPU κατακερματίζουν περίπου 100 δισεκατομμύρια bcrypt-cost-12 προσπάθειες ανά δευτερόλεπτο σε ένα σύμπλεγμα. 78 bit εντροπίας = 2^78 ≈ 3 × 10^23 υποψήφιοι. Η ωμή δύναμη στον ρυθμό της GPU θα χρειαζόταν περίπου 10^14 χρόνια — ανέφικτο. Οι κωδικοί πρόσβασης χαμηλότερης εντροπίας πέφτουν γρήγορα σε προσβάσιμα εύρη επιθέσεων.