In dit artikel
Wat is willekeurige getallengeneratie?
Willekeurige getallengeneratie is het proces van het produceren van getallen die niet van tevoren voorspeld kunnen worden. Computers zijn deterministische machines — ze kunnen geen echte willekeurigheid produceren zonder externe input. Verschillende technieken produceren verschillende kwaliteiten van willekeurigheid, wat enorm uitmaakt voor beveiligingstoepassingen.
Echte willekeurige getallengeneratoren (TRNG's) verzamelen entropy uit fysieke verschijnselen: muisbewegingen, toetsenbordtiming, aankomsttijden van netwerkpakketten of speciale hardwaresensoren. Pseudo-willekeurige getallengeneratoren (PRNG's) gebruiken wiskundige algoritmen die met entropy worden gezaaid om reeksen te produceren die er willekeurig uitzien.
Hoe willekeurige getallen worden gegenereerd
CheckTown gebruikt de cryptografisch veilige willekeurige getallengenerator van de browser.
- Entropybron — gebruikt window.crypto.getRandomValues() die put uit entropy op OS-niveau
- Bereikafbeelding — zet ruwe willekeurige waarden om naar je opgegeven min/max-bereik zonder vertekening
- Batchgeneratie — genereer meerdere getallen tegelijk voor lijsten, arrays of bulkbehoeften
Probeer gratis — geen aanmelding vereist
Genereer willekeurige getallen →Wanneer gebruik je een willekeurige getallengenerator?
Willekeurige getallengeneratie heeft vele toepassingen in ontwikkeling, testen en statistiek.
- Testen — genereer willekeurige testgegevens om fixtures te vullen of testdatabases te seeden
- Steekproeven — selecteer willekeurige steekproeven uit datasets voor statistische analyse of A/B-testoewijzing
- Games en simulaties — genereer onvoorspelbare inputs voor simulaties, games of loterijen
Veelgestelde vragen
Wat is het verschil tussen Math.random() en crypto.getRandomValues()?
Math.random() gebruikt een snelle PRNG die bij het opstarten wordt gezaaid. Het is geschikt voor simulaties en games, maar niet voor beveiliging. crypto.getRandomValues() gebruikt de CSPRNG van het besturingssysteem (Cryptografisch Veilige PRNG) die geschikt is voor het genereren van tokens, sleutels en andere beveiligingsgevoelige waarden. Gebruik altijd crypto.getRandomValues() voor beveiligingsdoeleinden.
Kan ik willekeurige getallen gebruiken voor cryptografische sleutels?
Ja, maar alleen als gegenereerd met een CSPRNG. Willekeurige getallen van Math.random() of vergelijkbare niet-cryptografische PRNG's zijn voorspelbaar gegeven het zaad en voldoende uitvoersamples. Cryptografische sleutels, tokens, salts en nonces moeten worden gegenereerd met cryptografisch veilige willekeurigheid.
Wat is modulovertekening en hoe beïnvloedt het willekeurige getalbereiken?
Modulovertekening treedt op bij het afbeelden van een willekeurige waarde naar een bereik met behulp van de %-operator. Als de willekeurige waarderuimte niet gelijkmatig deelbaar is door de bereikgrootte, verschijnen sommige waarden vaker dan andere. Het afbeelden van 0-255 naar 0-9 met % 10 zorgt er bijvoorbeeld voor dat 0-5 iets vaker voorkomt. CheckTown gebruikt rejection sampling om vertekening te elimineren.