Crypt::...::Yarrow(3)

πŸ’– NAME πŸ’–

hey bestie, you’re looking at Crypt::...::Yarrow(3) β€” a User Contributed Perl Documentation page. The main character is Crypt::PRNG::Yarrow: a Cryptographically secure PRNG based on Yarrow algorithm. That’s the name, and it ate. πŸ’…βœ¨

✨ SYNOPSIS ✨

okay so vibe check: here’s the whole thing in code, functional interface first and then the OO interface, exactly as the page says 🫢

### Functional interface:
use Crypt::PRNG::Yarrow 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::Yarrow;

my $prng = Crypt::PRNG::Yarrow->new;
my $seeded_prng = Crypt::PRNG::Yarrow->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 πŸ¦‹

This module gives you an interface to the Yarrow-based pseudo-random number generator. It’s a thin wrapper around Crypt::PRNG with the algorithm fixed to Yarrow. Every function and method accepts the same arguments and returns the same values as the corresponding Crypt::PRNG entries. no cap, it’s literally that simple 🫢

πŸŽ€ EXPORT πŸŽ€

Nothing is exported by default. highkey no surprise functions in your namespace, bestie.

You can export selected functions:

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

Or all of them at once:

use Crypt::PRNG::Yarrow ':all';

fr fr, that’s the whole export situation. πŸŽ€

πŸ›  FUNCTIONS πŸ› 

All functions below behave exactly like the corresponding Crypt::PRNG functions, but use a hidden Crypt::PRNG::Yarrow 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::Yarrow object created via new.

new

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

Creates a PRNG object using the Yarrow algorithm. If $seed is omitted, the object is automatically seeded by the underlying Crypt::PRNG logic. the way that optional seed is just chef’s kiss πŸŽ€

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 🌈


okay that’s the whole page, bestie 🫢 this cutie is from perl v5.42.0, dated 2026-05-11, and it lives at Crypt::...::Yarrow(3) β€” mwah πŸ’‹ periodt.

πŸ“¦ where this page comes from