/dev/random

256 byte hex dump of /dev/urandom

In Unix-like operating systems, /dev/random and /dev/urandom are special files that serve as cryptographically secure pseudorandom number generators (CSPRNGs). They allow access to a CSPRNG that is seeded with entropy (a value that provides randomness) from environmental noise, collected from device drivers and other sources.[1] /dev/random typically blocked if there was less entropy available than requested; more recently (see below for the differences between operating systems) it usually blocks at startup until sufficient entropy has been gathered, then unblocks permanently. The /dev/urandom device typically was never a blocking device, even if the pseudorandom number generator seed was not fully initialized with entropy since boot. Not all operating systems implement the same methods for /dev/random and /dev/urandom.

This special file originated in Linux in 1994. It was quickly adopted by other Unix-like operating systems.[2]

  1. ^ "random(7) - Linux manual page". 2023-02-10. Retrieved 2023-11-24.
  2. ^ Cite error: The named reference :0 was invoked but never defined (see the help page).