1#!/usr/bin/env perl
2
3use Digest::MD5 qw(md5);
4# Generates $1 bytes of random crap, based on a seed.
5#
6# if 0 is passed as a length, produce an infinite amount od crap.
7#
8# the optional second argument serves as a random seed.
9
10sub usage {
11    die "Usage: $0 <nbytes> [<integer seed>]\n";
12}
13
14defined(my $nbytes = shift @ARGV) or usage;
15my $seed = shift @ARGV || 0;
16my $infinite = $nbytes == 0;
17$|=1;
18
19$ctx = Digest::MD5->new;
20$ctx->add($seed);
21
22while ($infinite || $nbytes > 0) {
23    my $crap = $ctx->clone->digest;
24    my $take = ($infinite || $nbytes >= 16) ? 16 : $nbytes;
25    syswrite(STDOUT, $crap, $take) or die;
26    $nbytes -= $take;
27    $ctx->add($crap);
28}
29