Crypt::...ChaCha20(3)
π NAME π
okay bestie, welcome to the Crypt::...ChaCha20(3) page from User Contributed Perl Documentation β¨ This one is all about:
Crypt::PRNG::ChaCha20 β a cryptographically secure PRNG based on the ChaCha20 (stream cipher) algorithm π
β¨ SYNOPSIS β¨
### Functional interface:
use Crypt::PRNG::ChaCha20 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::ChaCha20;
my $prng = Crypt::PRNG::ChaCha20->new;
my $seeded_prng = Crypt::PRNG::ChaCha20->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 π¦
So this module provides an interface to the ChaCha20-based pseudo-random number generator π
Itβs a thin wrapper around Crypt::PRNG with the algorithm fixed to ChaCha20. All functions and methods accept the same arguments and return the same values as the corresponding Crypt::PRNG entries. no cap, thatβs the whole vibe π«
π EXPORT π
Nothing is exported by default. respectfully, itβs keeping boundaries π
You can export selected functions:
use Crypt::PRNG::ChaCha20 qw(random_bytes random_string);
Or all of them at once:
use Crypt::PRNG::ChaCha20 ':all';
π«Ά FUNCTIONS π«Ά
All functions below behave exactly like the corresponding Crypt::PRNG functions, but use a hidden "Crypt::PRNG::ChaCha20" object internally. iykyk π
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::ChaCha20" object created via "new". bestie, keep that in mind π§ π
new
my $prng = Crypt::PRNG::ChaCha20->new;
my $seeded_prng = Crypt::PRNG::ChaCha20->new($seed);
Creates a PRNG object using the ChaCha20 algorithm. If $seed is omitted, the object is automatically seeded by the underlying Crypt::PRNG logic. cute, automatic, iconic β¨
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 π
Crypt::PRNGπ«Ά- the RFC link, exactly as listed:
<https://www.rfc-editor.org/rfc/rfc7539>β¨
okay thatβs the whole page, bestie π signing off with the official footer energy: perl v5.42.0, 2026-05-11, and Crypt::...ChaCha20(3) β periodt ππ
π¦ where this page comes from
- opensuse-leap 16.0: perl-CryptX 0.89.0-bp160.1.1 Β· Artistic-1.0 OR GPL-1.0-or-later
- opensuse-leap 16.0: perl-CryptX 0.89.0-bp160.1.1 Β· Artistic-1.0 OR GPL-1.0-or-later
- opensuse-leap 16.0: perl-CryptX 0.89.0-bp160.1.1 Β· Artistic-1.0 OR GPL-1.0-or-later
- opensuse-leap 16.0: perl-CryptX 0.89.0-bp160.1.1 Β· Artistic-1.0 OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms