Bash:
Generering av tilfeldige tall
Hvordan gjøre det:
I Bash er $RANDOM
-variabelen veien å gå for å generere tilfeldige tall. Hver gang du refererer til den, gir Bash et pseudotilfeldig heltall mellom 0 og 32767. La oss utforske noen praktiske eksempler:
# Grunnleggende bruk av $RANDOM
echo $RANDOM
# Generere et tilfeldig tall innenfor et spesifisert område (0-99 her)
echo $(( RANDOM % 100 ))
# Generere et mer "sikkert" tilfeldig tall, egnet for passord eller nøkler
# Bruker /dev/urandom med od-kommando
head -c 8 /dev/urandom | od -An -tu4
# Såing av RANDOM for reproduserbarhet
RANDOM=42; echo $RANDOM
Eksempel på utskrift (merk: faktisk utskrift vil variere siden tallene er tilfeldige):
16253
83
3581760565
17220
Dypdykk
Mekanismen bak Bashs $RANDOM
genererer pseudotilfeldige tall, noe som betyr at de følger en algoritme og kan, i teorien, være forutsigbare - en potensiell sikkerhetsfeil for applikasjoner som krever ekte uforutsigbarhet. Moderne kryptografiske applikasjoner krever vanligvis tilfeldighet avledet fra fysiske fenomener eller fra maskinvare spesielt designet for å generere tilfeldige data, som /dev/urandom
eller /dev/random
i Linux, som samler miljøstøy.
For tilfeldige eller ikke-sikkerhetskritiske oppgaver, er $RANDOM
tilstrekkelig og tilbyr fordelen av enkelhet. Imidlertid, for kryptografiske formål eller der kvaliteten på tilfeldigheten er kritisk, bør utviklere se mot andre verktøy og språk designet med kryptografi i tankene, som OpenSSL eller programmeringsspråk med robuste biblioteker for generering av tilfeldige tall.
Selv om Bashs $RANDOM
tjener formålet i skript som krever grunnleggende tilfeldige tall, bør dens begrensninger styre utviklere mot mer robuste løsninger for applikasjoner der kvaliteten eller sikkerheten til tilfeldigheten er viktig.