Crypt::Blowfish::Mod - Another Blowfish Algorithm |
Crypt::Blowfish::Mod - Another Blowfish Algorithm
version 0.04
use Crypt::Blowfish::Mod;
my $cipher = new Crypt::Blowfish::Mod $key; my $ciphertext = $cipher->encrypt($plaintext); $plaintext = $cipher->decrypt($ciphertext);
Crypt::Blowfish::Mod implements the Blowfish algorithm using functions adapted from examples from Bruce Schneier and other authors.
Crypt::Blowfish::Mod has an interface similar to the Crypt::Blowfish manpage, but produces different results. This module is endianness sensitive, making sure that it gives the same encription/decription results in different architectures.
Also, this module accepts variable length keys up to 256 bytes. By default, it assumes the key
is a Base64
string. And all text encrypted or decrypted is also in Base64.
Usage:
## the key should be base64 my $b = Crypt::Blowfish::Mod->new('YaKjsKjY0./');
## or use a raw key: my $b = Crypt::Blowfish::Mod->new( key_raw=>'this_is_a_raw_key9k&$!djf29389238928938' );
my $enc = $b->encrypt( 'secret text' ); my $dec = $b->decrypt( $enc );
If you prefer, work with raw encrypted strings:
my $enc = $b->encrypt_raw( 'secret text' ); my $dec = $b->decrypt_raw( $enc );
Or just call it even more raw (Big Endian):
my $enc = Crypt::Blowfish::Mod::b_encrypt( $key, $str, 1 ); my $dec = Crypt::Blowfish::Mod::b_decrypt( $key, $enc, 1 );
Returns a encrypted string encoded in Base64.
Decodes a base64 encoded blowfish encrypted string.
Returns a raw encrypted string.
Decodes a raw encoded blowfish encrypted string.
Raw C decrypt function.
Raw C decrypt function.
The Blowfish algorithm is highly dependent on the endianness of your architecture. This module attempts to detect the correct endianness for your architecture, otherwise it will most likely default to little-endian.
You may override this behavior by setting the endianness on instantiation:
# force little-endian my $b = Crypt::Blowfish::Mod->new( key=>'YaKjsKjY0./', endianness=>'little' );
Intel-based architectures are typically Little-Endian.
the Crypt::OpenSSL::Blowfish manpage
This algorithm has been implemented in other languages:
http://www.schneier.com/blowfish-download.html
Rodrigo de Oliveira, <rodrigo@cpan.org>
Crypt::Blowfish::Mod - Another Blowfish Algorithm |