Scroll to navigation

Crypt::PRNG::Fortuna(3) User Contributed Perl Documentation Crypt::PRNG::Fortuna(3)

NAME

Crypt::PRNG::Fortuna - Cryptographically secure PRNG based on Fortuna algorithm

SYNOPSIS

   ### Functional interface:
   use Crypt::PRNG::Fortuna qw(random_bytes random_bytes_hex random_bytes_b64 random_bytes_b64u
                               random_string random_string_from rand irand);
   my $octets = random_bytes(45);
   my $hex_string = random_bytes_hex(45);
   my $base64_string = random_bytes_b64(45);
   my $base64url_string = random_bytes_b64u(45);
   my $alphanumeric_string = random_string(30);
   my $string = random_string_from('ACGT', 64);
   my $floating_point_number_0_to_1 = rand;
   my $floating_point_number_0_to_88 = rand(88);
   my $unsigned_32bit_int = irand;
   ### OO interface:
   use Crypt::PRNG::Fortuna;
   my $prng = Crypt::PRNG::Fortuna->new;
   my $seeded_prng = Crypt::PRNG::Fortuna->new("some data used for seeding PRNG");
   my $octets = $prng->bytes(45);
   my $hex_string = $prng->bytes_hex(45);
   my $base64_string = $prng->bytes_b64(45);
   my $base64url_string = $prng->bytes_b64u(45);
   my $alphanumeric_string = $prng->string(30);
   my $string = $prng->string_from('ACGT', 64);
   my $floating_point_number_0_to_1 = $prng->double;
   my $floating_point_number_0_to_88 = $prng->double(88);
   my $unsigned_32bit_int = $prng->int32;

DESCRIPTION

Provides an interface to the Fortuna-based pseudo-random number generator.

This is a thin wrapper around Crypt::PRNG with the algorithm fixed to Fortuna. All functions and methods accept the same arguments and return the same values as the corresponding Crypt::PRNG entries.

EXPORT

Nothing is exported by default.

You can export selected functions:

  use Crypt::PRNG::Fortuna qw(random_bytes random_string);

Or all of them at once:

  use Crypt::PRNG::Fortuna ':all';

FUNCTIONS

All functions below behave exactly like the corresponding Crypt::PRNG functions, but use a hidden "Crypt::PRNG::Fortuna" object internally.

random_bytes

See "random_bytes" in Crypt::PRNG.

random_bytes_hex

See "random_bytes_hex" in Crypt::PRNG.

random_bytes_b64

See "random_bytes_b64" in Crypt::PRNG.

random_bytes_b64u

See "random_bytes_b64u" in Crypt::PRNG.

random_string

See "random_string" in Crypt::PRNG.

random_string_from

See "random_string_from" in Crypt::PRNG.

rand

See "rand" in Crypt::PRNG.

irand

See "irand" in Crypt::PRNG.

METHODS

Unless noted otherwise, assume $prng is an existing "Crypt::PRNG::Fortuna" object created via "new".

new

 my $prng = Crypt::PRNG::Fortuna->new;
 my $seeded_prng = Crypt::PRNG::Fortuna->new($seed);

Creates a PRNG object using the Fortuna algorithm. If $seed is omitted, the object is automatically seeded by the underlying Crypt::PRNG logic.

bytes

See "bytes" in Crypt::PRNG.

bytes_hex

See "bytes_hex" in Crypt::PRNG.

bytes_b64

See "bytes_b64" in Crypt::PRNG.

bytes_b64u

See "bytes_b64u" in Crypt::PRNG.

string

See "string" in Crypt::PRNG.

string_from

See "string_from" in Crypt::PRNG.

double

See "double" in Crypt::PRNG.

int32

See "int32" in Crypt::PRNG.

SEE ALSO

2026-05-11 perl v5.42.1