Crypt::Cipher::DES(3)

πŸ’– Crypt::Cipher::DES πŸ’–

okay so welcome to the User Contributed Perl Documentation page for Crypt::Cipher::DES β€” yes bestie, the (3) manpage is here and it's ready to spill the cipher tea. ✨

🌸 NAME 🌸

  • Crypt::Cipher::DES β€” symmetric cipher DES, key size: 64[56] bits. slay.

✨ SYNOPSIS ✨

two ways to get into it, bestie. example 1 is the Crypt::Mode::CBC route; example 2 is the slower Crypt::CBC route. code is served exactly:

         ### example 1
         use Crypt::Mode::CBC;

         my $key = '...'; # length must be a valid key size for this cipher
         my $iv = '...';  # 16 bytes
         my $cbc = Crypt::Mode::CBC->new('DES');
         my $ciphertext = $cbc->encrypt("secret data", $key, $iv);

         ### example 2 (slower)
         use Crypt::CBC;
         use Crypt::Cipher::DES;

         my $key = '...'; # length must be a valid key size for this cipher
         my $iv = '...';  # 16 bytes
         my $cbc = Crypt::CBC->new( -cipher=>'Cipher::DES', -key=>$key, -iv=>$iv );
         my $ciphertext = $cbc->encrypt("secret data");

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so this module implements the DES cipher. its interface is compatible with Crypt::CBC. cute.

⚠️ important vibe check: this module only implements single-block encryption and decryption. for general data, use a block mode such as Crypt::Mode::CBC, Crypt::Mode::CTR, or Crypt::CBC (which is slower). no cap.

πŸ‘‘ METHODS πŸ‘‘

unless noted otherwise, assume $c is an existing cipher object created via "new", for example:

        my $c = Crypt::Cipher::DES->new($key);

🌟 new 🌟

make a cipher object, bestie. here are the signatures and the deets:

        my $c = Crypt::Cipher::DES->new($key);
        #or
        my $c = Crypt::Cipher::DES->new($key, $rounds);

        # $key .... [binary string] key of an accepted length (see keysize, min_keysize, max_keysize)
        # $rounds . [integer] optional, number of rounds (if supported by the cipher; croaks on invalid value)

πŸ” encrypt πŸ”

encrypts exactly one block of plaintext. the length of $plaintext must equal "blocksize"; croaks otherwise. an empty string is accepted and returned unchanged.

        my $ciphertext = $c->encrypt($plaintext);

returns the encrypted block as a binary string (raw bytes). πŸ’–

πŸ”“ decrypt πŸ”“

decrypts exactly one block of ciphertext. the length of $ciphertext must equal "blocksize"; croaks otherwise. an empty string is accepted and returned unchanged.

        my $plaintext = $c->decrypt($ciphertext);

returns the decrypted block as a binary string (raw bytes). periodt.

πŸ“ keysize πŸ“

just an alias for "max_keysize". iconic.

         $c->keysize;
         #or
         Crypt::Cipher::DES->keysize;
         #or
         Crypt::Cipher::DES::keysize;

🧱 blocksize 🧱

returns the cipher block size (in bytes).

         $c->blocksize;
         #or
         Crypt::Cipher::DES->blocksize;
         #or
         Crypt::Cipher::DES::blocksize;

πŸ“ˆ max_keysize πŸ“ˆ

returns the maximum key size (in bytes).

         $c->max_keysize;
         #or
         Crypt::Cipher::DES->max_keysize;
         #or
         Crypt::Cipher::DES::max_keysize;

πŸ“‰ min_keysize πŸ“‰

returns the minimum key size (in bytes).

         $c->min_keysize;
         #or
         Crypt::Cipher::DES->min_keysize;
         #or
         Crypt::Cipher::DES::min_keysize;

πŸ” default_rounds πŸ”

returns the cipher's default round count.

         $c->default_rounds;
         #or
         Crypt::Cipher::DES->default_rounds;
         #or
         Crypt::Cipher::DES::default_rounds;

🌈 SEE ALSO 🌈


kisses bestie πŸ’… this page's source/version is perl v5.42.0, dated 2026-05-11, and its manpage handle is Crypt::Cipher::DES(3). bye and slay βœ¨πŸ’–

πŸ“¦ where this page comes from