30 lines
690 B
Plaintext
30 lines
690 B
Plaintext
#!/usr/bin/perl
|
|
|
|
#
|
|
# Perform primitive binning into 8-bit bins (take 8 bits of randomness
|
|
# at a time) and see if the distribution is flat. The output should be
|
|
# checked by eye - are all the numbers roughly the same?
|
|
#
|
|
# Redirect the output from this to a file - and make a cup of coffee while
|
|
# it runs. This program is a CPU Hog!
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
for ($i = 0; $i < (1024*32); $i++) {
|
|
open(BIN, "/dev/urandom") || die "Cannot open /dev/urandom - $!\n";
|
|
$len = sysread(BIN, $a, 256);
|
|
close(BIN);
|
|
if ($len > 0) {
|
|
for ($j = 0; $j < $len; $j++) {
|
|
$k = unpack("C", substr($a, $j, 1));
|
|
$bin[$k]++;
|
|
}
|
|
}
|
|
}
|
|
|
|
for ($i = 0; $i < 256; $i++) {
|
|
printf("%.2X ", $bin[$i]);
|
|
}
|
|
printf "\n";
|