logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Crypt::PRNG::ChaCha20 - Cryptographically secure PRNG based on ChaCha20 (stream cipher) algorithm

Description

       Provides an interface to the ChaCha20 based pseudo random number generator

       All methods and functions are the same as for Crypt::PRNG.

Functions

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

new
       See "new" in Crypt::PRNG.

   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.

Name

       Crypt::PRNG::ChaCha20 - Cryptographically secure PRNG based on ChaCha20 (stream cipher) algorithm

See Also

       •   Crypt::PRNG

       •   <https://tools.ietf.org/html/rfc7539>

perl v5.40.0                                       2025-02-15                         Crypt::PRNG::ChaCha20(3pm)

Synopsis

          ### Functional interface:
          use Crypt::PRNG::ChaCha20 qw(random_bytes random_bytes_hex random_bytes_b64 random_string random_string_from rand irand);

          $octets = random_bytes(45);
          $hex_string = random_bytes_hex(45);
          $base64_string = random_bytes_b64(45);
          $base64url_string = random_bytes_b64u(45);
          $alphanumeric_string = random_string(30);
          $string = random_string_from('ACGT', 64);
          $floating_point_number_0_to_1 = rand;
          $floating_point_number_0_to_88 = rand(88);
          $unsigned_32bit_int = irand;

          ### OO interface:
          use Crypt::PRNG::ChaCha20;

          $prng = Crypt::PRNG::ChaCha20->new;
          #or
          $prng = Crypt::PRNG::ChaCha20->new("some data used for seeding PRNG");

          $octets = $prng->bytes(45);
          $hex_string = $prng->bytes_hex(45);
          $base64_string = $prng->bytes_b64(45);
          $base64url_string = $prng->bytes_b64u(45);
          $alphanumeric_string = $prng->string(30);
          $string = $prng->string_from('ACGT', 64);
          $floating_point_number_0_to_1 = rand;
          $floating_point_number_0_to_88 = rand(88);
          $unsigned_32bit_int = irand;

See Also