NAME
Crypt::Blowfish::Mod - Another Blowfish Algorithm
VERSION
version 0.02
SYNOPSIS
use Crypt::Blowfish::Mod;
my $cipher = new Crypt::Blowfish::Mod $key;
my $ciphertext = $cipher->encrypt($plaintext);
$plaintext = $cipher->decrypt($ciphertext);
DESCRIPTION
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 Crypt::Blowfish, but produces different results. Also, this module accepts variable length keys upt to 256 bytes.
METHODS
new
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_key9kdjf29389238928938' );
my $enc = $b->encrypt( 'secret text' );
my $dec = $b->decrypt( $enc );
Or just call it raw:
my $enc = Crypt::Blowfish::Mod::b_encrypt( $key, $str );
my $dec = Crypt::Blowfish::Mod::b_decrypt( $key, $enc );
encrypt
Returns a base64 encrypted string.
decrypt
Decodes a base64 encoded blowfish encrypted string.
b_encrypt
Raw C decrypt function.
b_decrypt
Raw C decrypt function.
NOTES
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.
SEE ALSO
This algorithm has been implemented in other languages:
http://www.schneier.com/blowfish-download.html
AUTHOR
Rodrigo de Oliveira, <rodrigo@cpan.org>