Γεννήτρια Τυχαίων Αριθμών
Επιλογές
Έξοδος
Τεχνικές λεπτομέρειες
Πώς λειτουργεί η Γεννήτρια Τυχαίων Αριθμών
Τι κάνει το εργαλείο
Η Γεννήτρια Τυχαίων Αριθμών παράγει κρυπτογραφικά ισχυρούς τυχαίους ακέραιους ή αριθμούς κινητής υποδιαστολής χρησιμοποιώντας το Web Crypto API (crypto.getRandomValues). Χρησιμοποιεί rejection sampling για να εξαλείψει το modulo bias, εξασφαλίζοντας ομοιόμορφη κατανομή σε οποιοδήποτε καθορισμένο εύρος. Μπορείτε να δημιουργήσετε μεμονωμένες τιμές ή παρτίδες τυχαίων αριθμών με ρυθμιζόμενες παραμέτρους ελάχιστου, μέγιστου και ακρίβειας.
Συνηθισμένες περιπτώσεις χρήσης για προγραμματιστές
Οι προγραμματιστές χρησιμοποιούν κρυπτογραφικές γεννήτριες τυχαίων αριθμών για εργασίες ευαίσθητες στην ασφάλεια, όπως η δημιουργία μη προβλέψιμων session tokens, nonces, επιλογών λοταρίας ή τυχαίας δειγματοληψίας από σύνολα δεδομένων. Οι προγραμματιστές παιχνιδιών το χρησιμοποιούν για ρίψεις ζαριών και διαδικαστική δημιουργία όταν η δικαιοσύνη έχει σημασία. Οι μηχανικοί QA δημιουργούν τυχαίες εισόδους δοκιμών για fuzz testing και οι επιστήμονες δεδομένων το χρησιμοποιούν για τυχαία δειγματοληψία όταν δεν απαιτείται αναπαραγωγιμότητα.
Μορφές δεδομένων, τύποι ή παραλλαγές
Το εργαλείο υποστηρίζει παραγωγή ακεραίων μέσα σε αυθαίρετο εύρος (συμπεριλαμβανομένων των ορίων) και παραγωγή αριθμών κινητής υποδιαστολής με ρυθμιζόμενη δεκαδική ακρίβεια. Το rejection sampling απορρίπτει τιμές που θα προκαλούσαν modulo bias όταν το εύρος δεν διαιρεί ομοιόμορφα τον χώρο εξόδου της τυχαίας πηγής. Η υποκείμενη εντροπία προέρχεται από το CSPRNG του λειτουργικού συστήματος (CryptGenRandom στα Windows, /dev/urandom σε Unix) και παρέχεται μέσω του Web Crypto API του browser.
Συνηθισμένα λάθη και οριακές περιπτώσεις
Η κρυπτογραφική τυχαιότητα είναι πιο αργή από το Math.random() και περιττή για μη-ασφαλείς χρήσεις όπως το ανακάτεμα μιας λίστας αναπαραγωγής. Το rejection sampling μπορεί θεωρητικά να κάνει πολλές επαναλήψεις για παθολογικά εύρη, αν και στην πράξη αυτό είναι αμελητέο. Οι τυχαίοι αριθμοί που παράγονται από browser δεν μπορούν να γίνουν seeded για αναπαραγωγιμότητα — αν χρειάζεστε ντετερμινιστικές ακολουθίες για δοκιμές, χρησιμοποιήστε αντί αυτού έναν seeded PRNG. Το μέγιστο ασφαλές εύρος ακεραίων περιορίζεται από το Number.MAX_SAFE_INTEGER της JavaScript (2^53 - 1).
Πότε να χρησιμοποιήσετε αυτό το εργαλείο έναντι κώδικα
Χρησιμοποιήστε αυτό το εργαλείο browser όταν χρειάζεστε έναν γρήγορο, αμερόληπτο τυχαίο αριθμό για μια εφάπαξ απόφαση, χειροκίνητες δοκιμές ή για να επαληθεύσετε ότι η δική σας υλοποίηση παράγει τιμές εντός των αναμενόμενων ορίων. Για χρήση σε παραγωγή, καλέστε το crypto.getRandomValues() απευθείας στον κώδικά σας ή χρησιμοποιήστε συναρτήσεις CSPRNG που είναι εγγενείς στη γλώσσα (module secrets στην Python, SecureRandom στη Java) και ενσωματώνονται με τον χειρισμό σφαλμάτων και την καταγραφή (logging) της εφαρμογής σας.