arc4rand,
- Provided by: freebsd-manpages (Version: 10.1~RC1-1)
- Report a bug
#include
<sys/libkern.h>
void
srandom(u_long
seed);
u_long
random(void);
void
arc4rand(void
*ptr, u_int length,
int reseed);
uint32_t
arc4random(void);
#include <sys/random.h>
int
read_random(void
*buffer, int
count);
The
random()
function will by default produce a sequence of numbers that can be
duplicated by calling
srandom()
with ‘1’ as the
seed. The srandom() function
may be called with any arbitrary seed value to get
slightly more unpredictable numbers. It is important to remember that the
random() function is entirely predictable, and is
therefore not of use where knowledge of the sequence of numbers may be of
benefit to an attacker.
The
arc4rand()
function will return very good quality random numbers, slightly better
suited for security-related purposes. The random numbers from
arc4rand() are seeded from the entropy device if it
is available. Automatic reseeds happen after a certain timeinterval and
after a certain number of bytes have been delivered. A forced reseed can be
forced by passing a non-zero value in the reseed
argument.
The
read_random()
function is used to return entropy directly from the entropy device if it
has been loaded. If the entropy device is not loaded, then the
buffer is filled with output generated by
random(). The buffer is filled
with no more than count bytes. It is advised that
read_random() is not used; instead use
arc4rand()
All the bits generated by
random(),
arc4rand() and read_random()
are usable. For example,
‘random()&01’ will produce a
random binary value.
The
arc4random()
is a convenience function which calls arc4rand() to
return a 32 bit pseudo-random integer.
The random() function uses a non-linear
additive feedback random number generator employing a default table of size
31 long integers to return successive pseudo-random numbers in the range
from 0 to (2**31)−1. The period of this random number generator is
very large, approximately 16*((2**31)−1).
The arc4rand() function uses the RC4
algorithm to generate successive pseudo-random bytes. The
arc4random() function uses
arc4rand() to generate pseudo-random numbers in the
range from 0 to (2**32)−1.
The read_random() function returns the
number of bytes placed in buffer.
Dan Moschuk wrote
arc4random().
Mark R V Murray wrote
read_random().