Generator nasumičnih brojeva
Opcije
Izlaz
Tehnički detalji
Kako radi generator slučajnih brojeva
Šta alat radi
Generator slučajnih brojeva proizvodi kriptografski jake slučajne cele brojeve ili brojeve sa pokretnim zarezom koristeći Web Crypto API (crypto.getRandomValues). Koristi rejection sampling da eliminiše modulo pristrasnost, obezbeđujući uniformnu raspodelu u bilo kom zadatom opsegu. Možete generisati pojedinačne vrednosti ili serije slučajnih brojeva uz podesive minimalne, maksimalne i postavke preciznosti.
Uobičajeni slučajevi upotrebe za programere
Programeri koriste kriptografske generatore slučajnih brojeva za bezbednosno osetljive zadatke kao što su generisanje nepredvidivih tokena sesije, nonce vrednosti, izvlačenja za lutriju ili slučajno uzorkovanje iz skupova podataka. Programeri igara ih koriste za bacanje kockica i proceduralno generisanje kada je pravičnost bitna. QA inženjeri generišu slučajne test ulaze za fuzz testiranje, a data naučnici ih koriste za slučajno uzorkovanje kada reproduktivnost nije potrebna.
Formati podataka, tipovi ili varijante
Alat podržava generisanje celih brojeva u proizvoljnom opsegu (uključive granice) i generisanje brojeva sa pokretnim zarezom uz podesivu decimalnu preciznost. Rejection sampling odbacuje vrednosti koje bi izazvale modulo pristrasnost kada opseg ne deli ravnomerno izlazni prostor izvora slučajnosti. Osnovna entropija dolazi iz CSPRNG-a operativnog sistema (CryptGenRandom na Windows-u, /dev/urandom na Unix-u) dostupnog kroz Web Crypto API pregledača.
Uobičajene greške i rubni slučajevi
Kriptografska slučajnost je sporija od Math.random() i nepotrebna za nebezbednosne upotrebe kao što je mešanje plejliste. Rejection sampling teoretski može da se vrti mnogo puta za patološke opsege, iako je u praksi to zanemarljivo. Slučajni brojevi generisani u pregledaču ne mogu se seed-ovati radi reproduktivnosti — ako su vam potrebne determinističke sekvence za testiranje, koristite seeded PRNG. Maksimalni bezbedan opseg celih brojeva ograničen je JavaScript konstantom Number.MAX_SAFE_INTEGER (2^53 - 1).
Kada koristiti ovaj alat umesto koda
Koristite ovaj alat u pregledaču kada vam treba brz, nepristrasan slučajan broj za jednokratnu odluku, ručno testiranje ili proveru da vaša implementacija daje vrednosti u očekivanim opsezima. Za produkcionu upotrebu pozovite crypto.getRandomValues() direktno u svom kodu ili koristite CSPRNG funkcije koje su izvorne za jezik (modul secrets u Python-u, SecureRandom u Java-i) koje se integrišu sa obradom grešaka i logovanjem u vašoj aplikaciji.