Crypt::Digest - Generic interface to hash/digest functions
### Functional interface: use Crypt::Digest qw( digest_data digest_data_hex digest_data_base64 digest_file digest_file_hex digest_file_base64 ); # calculate digest from string/buffer $digest_raw = digest_data('SHA1', 'data string'); $digest_hex = digest_data_hex('SHA1', 'data string'); $digest_b64 = digest_data_base64('SHA1', 'data string'); # calculate digest from file $digest_raw = digest_file('SHA1', 'filename.dat'); $digest_hex = digest_file_hex('SHA1', 'filename.dat'); $digest_b64 = digest_file_base64('SHA1', 'filename.dat'); # calculate digest from filehandle $digest_raw = digest_file('SHA1', *FILEHANDLE); $digest_hex = digest_file_hex('SHA1', *FILEHANDLE); $digest_b64 = digest_file_base64('SHA1', *FILEHANDLE); ### OO interface: use Crypt::Digest; $d = Crypt::Digest->new('SHA1'); $d->add('any data'); $d->addfile('filename.dat'); $d->addfile(*FILEHANDLE); $result_raw = $d->digest; # raw bytes $result_hex = $d->hexdigest; # hexadecimal form $result_b64 = $d->b64digest; # Base64 form
Provides an interface to various hash/digest algorithms.
Nothing is exported by default.
You can export selected functions:
use Crypt::Digest qw(digest_data digest_data_hex digest_data_base64 digest_file digest_file_hex digest_file_base64);
Or all of them at once:
use Crypt::Digest ':all';
Please note that all functions take as its first argument the algoritm name, supported values are:
'CHAES', 'MD2', 'MD4', 'MD5', 'RIPEMD128', 'RIPEMD160', 'RIPEMD256', 'RIPEMD320', 'SHA1', 'SHA224', 'SHA256', 'SHA384', 'SHA512', 'Tiger192', 'Whirlpool' (simply any <FUNCNAME> for which there is Crypt::Digest::<FUNCNAME> module)
Logically joins all arguments into a single string, and returns its SHA1 digest encoded as a binary string.
$digest_raw = digest_data('SHA1', 'data string'); #or $digest_raw = digest_data('SHA1', 'any data', 'more data', 'even more data');
Logically joins all arguments into a single string, and returns its SHA1 digest encoded as a hexadecimal string.
$digest_hex = digest_data_hex('SHA1', 'data string'); #or $digest_hex = digest_data('SHA1', 'any data', 'more data', 'even more data');
Logically joins all arguments into a single string, and returns its SHA1 digest encoded as a Base64 string, with trailing '=' padding.
$digest_base64 = digest_data_base64('SHA1', 'data string'); #or $digest_base64 = digest_data('SHA1', 'any data', 'more data', 'even more data');
Reads file (defined by filename or filehandle) content, and returns its digest encoded as a binary string.
$digest_raw = digest_file('SHA1', 'filename.dat'); #or $digest_raw = digest_file('SHA1', *FILEHANDLE);
Reads file (defined by filename or filehandle) content, and returns its digest encoded as a hexadecimal string.
$digest_hex = digest_file_hex('SHA1', 'filename.dat'); #or $digest_hex = digest_file_hex('SHA1', *FILEHANDLE);
BEWARE: You have to make sure that the filehandle is in binary mode before you pass it as argument to the addfile() method.
Reads file (defined by filename or filehandle) content, and returns its digest encoded as a Base64 string, with trailing '=' padding.
$digest_base64 = digest_file_base64('SHA1', 'filename.dat'); #or $digest_base64 = digest_file_base64('SHA1', *FILEHANDLE);
Constructor, returns a reference to the digest object.
$d = Crypt::Digest->new($name); # $name could be: 'CHAES', 'MD2', 'MD4', 'MD5', 'RIPEMD128', 'RIPEMD160', # 'RIPEMD256', 'RIPEMD320', 'SHA1', 'SHA224', 'SHA256', # 'SHA384', 'SHA512', 'Tiger192', 'Whirlpool' # # simply any <FUNCNAME> for which there is Crypt::Digest::<FUNCNAME> module
Creates a copy of the digest object state and returns a reference to the copy.
$d->clone();
Reinitialize the digest object state and returns a reference to the digest object.
$d->reset();
All arguments are appended to the message we calculate digest for. The return value is the digest object itself.
$d->add('any data'); #or $d->add('any data', 'more data', 'even more data');
Note that all the following cases are equivalent:
# case 1 $d->add('aa', 'bb', 'cc'); # case 2 $d->add('aa'); $d->add('bb'); $d->add('cc'); # case 3 $d->add('aabbcc'); # case 4 $d->add('aa')->add('bb')->add('cc');
The content of the file (or filehandle) is appended to the message we calculate digest for. The return value is the digest object itself.
$d->addfile('filename.dat'); #or $d->addfile(*FILEHANDLE);
This method is available mostly for compatibility with other Digest::SOMETHING modules on CPAN, you are very unlikely to need it. The return value is the digest object itself.
$d->add_bits("111100001010"); #or $d->add_bits("\xF0\xA0", 16);
BEWARE: It is not possible to add bits that are not a multiple of 8.
Returns the length of calculated digest in bytes (e.g. 32 for SHA-256).
$d->hashsize; #or Crypt::Digest->hashsize('SHA1'); #or Crypt::Digest::hashsize('SHA1');
Return the binary digest (raw bytes).
$result_raw = $d->digest();
Returns the digest encoded as a hexadecimal string.
$result_hex = $d->hexdigest();
Return the digest encoded as a Base64 string, with trailing '=' padding (BEWARE: this padding style might differ from other Digest::SOMETHING modules on CPAN).
$result_base64 = $d->b64digest();
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.