Listing 3. Generating VRNs with generate_vrns.pl.
0 #!/usr/bin/perl
1 # file: generate_vrns.pl
2 use constant DIGITS => 100;
3 my $id_count = shift;
4 for (1..$id_count) {
5 my $digits = random_digits(DIGITS);
6 $digits =~ s/(.{25})/$1\n/g;
7 print <<EOB;
8 --REGISTRATION-START--
9 $digits--REGISTRATION-END--
10 EOB
11 }
12 sub random_digits {
13 my $digits_desired = shift;
14 open(RAND,'/dev/urandom') or die "Can't open random number device: $!";
15 my $data;
16 read(RAND,$data,$digits_desired) or die "Can't read random bytes: $!";
17 my @digits = map {$_ % 10} unpack('C*',$data);
18 return join '', @digits[0..$digits_desired-1];
19 }