man > Crypt::Cipher

πŸ“› NAME

Crypt::Cipher - Generic interface to cipher functions

πŸš€ Quick Reference

Use CaseCommandDescription
Create cipher objectmy $c = Crypt::Cipher->new('AES', $key)Initialize cipher with algorithm name and key
Encrypt one block$ciphertext = $c->encrypt($plaintext)Encrypt a block of blocksize bytes
Decrypt one block$plaintext = $c->decrypt($ciphertext)Decrypt a block of blocksize bytes
Get block size$c->blocksizeReturns cipher block size in bytes
Get max key size$c->max_keysizeMaximum allowed key length in bytes
Encrypt with CBC modemy $cbc = Crypt::Mode::CBC->new('AES'); $cbc->encrypt($data, $key, $iv)Use Cipher Block Chaining for multi‑block data
Compatibility with Crypt::CBCmy $cipher = Crypt::Cipher('AES', $key); my $cbc = Crypt::CBC->new(-cipher=>$cipher, -iv=>$iv);Use Crypt::CBC wrapper for full encryption

πŸ“œ SYNOPSIS

#### example 1 (encrypting single block)
use Crypt::Cipher;

my $key = '...'; # length has to be valid key size for this cipher
my $c = Crypt::Cipher->new('AES', $key);
my $blocksize  = $c->blocksize;
my $ciphertext = $c->encrypt('plain text block'); #encrypt 1 block
my $plaintext  = $c->decrypt($ciphertext);         #decrypt 1 block
### example 2 (using CBC mode)
use Crypt::Mode::CBC;

my $key = '...'; # length has to be valid key size for this cipher
my $iv = '...';  # 16 bytes
my $cbc = Crypt::Mode::CBC->new('AES');
my $ciphertext = $cbc->encrypt("secret data", $key, $iv);
#### example 3 (compatibility with Crypt::CBC)
use Crypt::CBC;
use Crypt::Cipher;

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

ℹ️ DESCRIPTION

Provides an interface to various symmetric cipher algorithms.

BEWARE: This module implements just elementary "one-block-(en|de)cryption" operation - if you want to encrypt/decrypt generic data you have to use some of the cipher block modes - check for example Crypt::Mode::CBC, Crypt::Mode::CTR or Crypt::CBC (which will be slower).

🧰 METHODS

πŸ†• new

Constructor, returns a reference to the cipher object.

## basic scenario
$d = Crypt::Cipher->new($name, $key);
# $name = one of 'AES', 'Anubis', 'Blowfish', 'CAST5', 'Camellia', 'DES', 'DES_EDE',
#                'KASUMI', 'Khazad', 'MULTI2', 'Noekeon', 'RC2', 'RC5', 'RC6',
#                'SAFERP', 'SAFER_K128', 'SAFER_K64', 'SAFER_SK128', 'SAFER_SK64',
#                'SEED', 'Skipjack', 'Twofish', 'XTEA', 'IDEA', 'Serpent'
#                simply any <NAME> for which there exists Crypt::Cipher::<NAME>
# $key = binary key (keysize should comply with selected cipher requirements)

## some of the ciphers (e.g. MULTI2, RC5, SAFER) allow one to set number of rounds
$d = Crypt::Cipher->new('MULTI2', $key, $rounds);
# $rounds = positive integer (should comply with selected cipher requirements)

πŸ”’ encrypt

Encrypts $plaintext and returns the $ciphertext where $plaintext and $ciphertext should be of blocksize bytes.

$ciphertext = $d->encrypt($plaintext);

πŸ”“ decrypt

Decrypts $ciphertext and returns the $plaintext where $plaintext and $ciphertext should be of blocksize bytes.

$plaintext = $d->decrypt($ciphertext);

πŸ”‘ keysize

Just an alias for max_keysize (needed for Crypt::CBC compatibility).

$d->keysize;
#or
Crypt::Cipher->keysize('AES');
#or
Crypt::Cipher::keysize('AES');

πŸ” max_keysize

Returns the maximal allowed key size (in bytes) for given cipher.

$d->max_keysize;
#or
Crypt::Cipher->max_keysize('AES');
#or
Crypt::Cipher::max_keysize('AES');

πŸ”½ min_keysize

Returns the minimal allowed key size (in bytes) for given cipher.

$d->min_keysize;
#or
Crypt::Cipher->min_keysize('AES');
#or
Crypt::Cipher::min_keysize('AES');

🧱 blocksize

Returns block size (in bytes) for given cipher.

$d->blocksize;
#or
Crypt::Cipher->blocksize('AES');
#or
Crypt::Cipher::blocksize('AES');

πŸŽ›οΈ default_rounds

Returns default number of rounds for given cipher. NOTE: only some ciphers (e.g. MULTI2, RC5, SAFER) allow one to set number of rounds via new().

$d->default_rounds;
#or
Crypt::Cipher->default_rounds('AES');
#or
Crypt::Cipher::default_rounds('AES');

πŸ‘€ SEE ALSO


perl v5.34.0 2022-02-06 Crypt::Cipher(3pm)

Crypt::Cipher
πŸ“› NAME πŸš€ Quick Reference πŸ“œ SYNOPSIS ℹ️ DESCRIPTION 🧰 METHODS
πŸ†• new πŸ”’ encrypt πŸ”“ decrypt πŸ”‘ keysize πŸ” max_keysize πŸ”½ min_keysize 🧱 blocksize πŸŽ›οΈ default_rounds
πŸ‘€ SEE ALSO

Generated by phpman v4.9.22-1-g1b0fcb4 · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-07-06 04:45 @216.73.216.52
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 Transitional!Valid CSS!
Enhanced by LLM: deepseek-v4-pro / taotoken.net / www.chedong.com - original format

^_top_^