Crypt::Mode::CBC - Block cipher mode CBC [Cipher-block chaining]
Crypt::Mode::CBC; my $m = Crypt::Mode::CBC->new('AES'); #(en|de)crypt at once my $ciphertext = $m->encrypt($plaintext, $key, $iv); my $plaintext = $m->decrypt($ciphertext, $key, $iv); #encrypt more chunks $m->start_encrypt($key, $iv); my $ciphertext = $m->add('some data'); $ciphertext .= $m->add('more data'); $ciphertext .= $m->finish; #decrypt more chunks $m->start_decrypt($key, $iv); my $plaintext = $m->add($some_ciphertext); $plaintext .= $m->add($more_ciphertext); $plaintext .= $m->finish;
This module implements CBC cipher mode. NOTE: it works only with ciphers from CryptX (Crypt::Cipher::NNNN).
my $m = Crypt::Mode::CBC->new('AES'); #or my $m = Crypt::Mode::CBC->new('AES', $padding); #or my $m = Crypt::Mode::CBC->new('AES', $padding, $cipher_rounds); # $padding .... 0 no padding (plaintext size has to be myltiple of block length) # 1 PKCS5 padding, Crypt::CBC's "standard" - DEFAULT # 2 Crypt::CBC's "oneandzeroes" # $cipher_rounds ... optional num of rounds for given cipher
my $ciphertext = $m->encrypt($plaintext, $key, $iv);
my $plaintext = $m->decrypt($ciphertext, $key, $iv);
See example below "finish".
#encrypt more chunks $m->start_encrypt($key, $iv); my $ciphertext = ''; $ciphertext .= $m->add('some data'); $ciphertext .= $m->add('more data'); $ciphertext .= $m->finish; #decrypt more chunks $m->start_decrypt($key, $iv); my $plaintext = ''; $plaintext .= $m->add($some_ciphertext); $plaintext .= $m->add($more_ciphertext); $plaintext .= $m->finish;
CryptX, Crypt::Cipher
Crypt::Cipher::AES, Crypt::Cipher::Blowfish, ...
https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Cipher-block_chaining_.28CBC.29
To install CryptX, copy and paste the appropriate command in to your terminal.
cpanm
cpanm CryptX
CPAN shell
perl -MCPAN -e shell install CryptX
For more information on module installation, please visit the detailed CPAN module installation guide.