DevToys Web Pro iconDevToys Web ProБлог
Ocenite nas:
Isprobajte ekstenziju za pregledač:

Generator nasumičnih brojeva

Režim

Opcije

Min
Maks
Broj

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.