my $key = "this key must be kept secret!";
sub generate_MD5_hash {
my ( $plain_text ) = @_;
$plain_text = '' unless defined $plain_text;
require Digest::MD5;
return Digest::MD5->new->add( $plain_text . $key )->hexdigest;
}
sub validate_MD5_hash {
my ( $hash, $plain_text ) = @_;
return 0 unless $hash;
return 0 unless defined $plain_text;
return $hash eq generate_MD5_hash($plain_text) ? 1 : 0;
}
sub decrypt {
return '' unless $_[0] and $_[0] =~ m!^[A-Fa-f0-9]+$!;
require Crypt::Blowfish;
require Crypt::CBC;
my $cipher = new Crypt::CBC( $key, 'Blowfish' )
return $cipher->decrypt_hex($_[0]);
}
sub encrypt {
return '' unless defined $_[0];
require Crypt::Blowfish;
require Crypt::CBC;
my $cipher = new Crypt::CBC( $key, 'Blowfish' )
return $cipher->encrypt_hex($_[0]);
}
|