Crypt::...st::SHA1(3)
π NAME π
okay so real talk, the header got chopped by the terminal β this is the Crypt::...st::SHA1(3) page, aka Crypt::Digest::SHA1, filed under User Contributed Perl Documentation. Here's the actual name drop:
Crypt::Digest::SHA1 β Hash function SHA-1 [size: 160 bits] πΈ
β¨ SYNOPSIS β¨
### Functional interface:
use Crypt::Digest::SHA1 qw( sha1 sha1_hex sha1_b64 sha1_b64u
sha1_file sha1_file_hex sha1_file_b64 sha1_file_b64u );
# calculate digest from string/buffer
my $data = 'data string';
my $sha1_raw = sha1($data);
my $sha1_hex = sha1_hex($data);
my $sha1_b64 = sha1_b64($data);
my $sha1_b64u = sha1_b64u($data);
# or from file
my $sha1_file_raw = sha1_file('filename.dat');
my $sha1_file_hex = sha1_file_hex('filename.dat');
my $sha1_file_b64 = sha1_file_b64('filename.dat');
my $sha1_file_b64u = sha1_file_b64u('filename.dat');
# or from filehandle
my $filehandle = ...; # existing binary-mode filehandle
my $sha1_fh_raw = sha1_file($filehandle);
my $sha1_fh_hex = sha1_file_hex($filehandle);
my $sha1_fh_b64 = sha1_file_b64($filehandle);
my $sha1_fh_b64u = sha1_file_b64u($filehandle);
### OO interface:
use Crypt::Digest::SHA1;
my $d = Crypt::Digest::SHA1->new;
$d->add('any data');
my $result_raw = $d->digest; # raw bytes
my $result_hex = $d->hexdigest; # hexadecimal form
my $result_b64 = $d->b64digest; # Base64 form
my $result_b64u = $d->b64udigest; # Base64 URL-safe form
# or hash a file instead
my $file_result_raw = Crypt::Digest::SHA1->new->addfile('filename.dat')->digest;
two whole vibes, one module. pick your fighter π
π¦ DESCRIPTION π¦
It gives you an interface to the SHA1 digest algorithm. that's the whole thing. short, sweet, iconic. π
π EXPORT π
Nothing is exported by default β no surprise gifts, bestie, you have to ask. π
You can export selected functions, cherry-picked like your fave playlist:
use Crypt::Digest::SHA1 qw(sha1 sha1_hex sha1_b64 sha1_b64u
sha1_file sha1_file_hex sha1_file_b64 sha1_file_b64u);
Or all of them at once, goblin mode, no regrets:
use Crypt::Digest::SHA1 ':all';
π FUNCTIONS π
π sha1
Joins all arguments into a single string and returns its SHA1 digest encoded as a binary string. raw bytes, no filter. π
Data arguments for the functional helpers are converted to byte strings using Perl's usual scalar stringification. Defined scalars β including numbers and string-overloaded objects β are accepted. undef is treated as an empty string and may emit Perl's usual "uninitialized value" warning. Same rules apply to sha1_hex, sha1_b64, and sha1_b64u. consistency slay.
my $sha1_raw = sha1('data string');
#or
my $sha1_raw = sha1('any data', 'more data', 'even more data');
π sha1_hex
Joins all arguments into a single string and returns its SHA1 digest encoded as a hexadecimal string. lowercase hex, very demure. β¨
my $sha1_hex = sha1_hex('data string');
#or
my $sha1_hex = sha1_hex('any data', 'more data', 'even more data');
π sha1_b64
Joins all arguments into a single string and returns its SHA1 digest encoded as a Base64 string, with trailing '=' padding. yes the padding is part of the look, don't touch it. π
my $sha1_b64 = sha1_b64('data string');
#or
my $sha1_b64 = sha1_b64('any data', 'more data', 'even more data');
π sha1_b64u
Joins all arguments into a single string and returns its SHA1 digest encoded as a Base64 URL-safe string (see RFC 4648 section 5). URL-safe is the main character version, lowkey. π¦
my $sha1_b64url = sha1_b64u('data string');
#or
my $sha1_b64url = sha1_b64u('any data', 'more data', 'even more data');
π sha1_file
Reads a file given by a filename or filehandle and returns its SHA1 digest encoded as a binary string.
my $sha1_raw = sha1_file('filename.dat');
#or
my $filehandle = ...; # existing binary-mode filehandle
my $sha1_raw = sha1_file($filehandle);
π sha1_file_hex
Reads a file given by a filename or filehandle and returns its SHA1 digest encoded as a hexadecimal string.
my $sha1_hex = sha1_file_hex('filename.dat');
#or
my $filehandle = ...; # existing binary-mode filehandle
my $sha1_hex = sha1_file_hex($filehandle);
β οΈ Note: The filehandle must be in binary mode before you pass it to addfile(). not a suggestion, bestie, it's a requirement. π
π sha1_file_b64
Reads a file given by a filename or filehandle and returns its SHA1 digest encoded as a Base64 string, with trailing '=' padding.
my $sha1_b64 = sha1_file_b64('filename.dat');
#or
my $filehandle = ...; # existing binary-mode filehandle
my $sha1_b64 = sha1_file_b64($filehandle);
π sha1_file_b64u
Reads a file given by a filename or filehandle and returns its SHA1 digest encoded as a Base64 URL-safe string (see RFC 4648 section 5).
my $sha1_b64url = sha1_file_b64u('filename.dat');
#or
my $filehandle = ...; # existing binary-mode filehandle
my $sha1_b64url = sha1_file_b64u($filehandle);
π METHODS π
The OO interface provides the same set of functions as Crypt::Digest. Unless noted otherwise, assume $d is an existing digest object created via new, for example:
my $d = Crypt::Digest::SHA1->new();
π§ new
my $d = Crypt::Digest::SHA1->new();
fresh object, fresh start, born ready. π«Ά
π§ clone
$d->clone();
π§ reset
$d->reset();
π§ add
Appends data to the message. Returns the object itself (for chaining). chainable?? we love a fluent queen. π
Each argument is converted to bytes using Perl's usual scalar stringification. Defined scalars β including numbers and string-overloaded objects β are accepted. undef is treated as an empty string and may emit Perl's usual "uninitialized value" warning.
$d->add('any data');
#or
$d->add('any data', 'more data', 'even more data');
π§ addfile
Reads the file content and appends it to the message. Returns the object itself (for chaining). yep, also chainable. π₯
$d->addfile('filename.dat');
#or
my $filehandle = ...; # existing binary-mode filehandle
$d->addfile($filehandle);
π§ hashsize
$d->hashsize;
#or
Crypt::Digest::SHA1->hashsize();
#or
Crypt::Digest::SHA1::hashsize();
three ways to ask the same question, pick whichever sparks joy. β
π§ digest
Returns the binary digest (raw bytes). The first call finalizes the digest object. Any later add(), addfile(), digest(), hexdigest(), b64digest(), or b64udigest() call will fail until you call reset().
π¨ read that again bestie: one shot, then it's locked. no cap.
my $result_raw = $d->digest();
π§ hexdigest
Returns the digest encoded as a lowercase hexadecimal string. Like digest(), the first call finalizes the digest object.
my $result_hex = $d->hexdigest();
π§ b64digest
Returns the digest encoded as a Base64 string with trailing "=" padding. Like digest(), the first call finalizes the digest object.
my $result_b64 = $d->b64digest();
π§ b64udigest
Returns the digest encoded as a Base64 URL-safe string (no trailing "="). Like digest(), the first call finalizes the digest object.
my $result_b64url = $d->b64udigest();
π SEE ALSO π
CryptX,Crypt::Digestβ the whole squad, go say hi π«Ά- <https://en.wikipedia.org/wiki/SHA-1> β for your late-night wiki rabbit hole π
and that's the page, bestie!! this little number was served up by perl v5.42.0, dated 2026-05-11, under the Crypt::...st::SHA1(3) banner. go forth and hash responsibly, ily, bye ππβ¨
π¦ where this page comes from
- opensuse-leap 16.0: perl-CryptX 0.89.0-bp160.1.1 Β· Artistic-1.0 OR GPL-1.0-or-later
- opensuse-leap 16.0: perl-CryptX 0.89.0-bp160.1.1 Β· Artistic-1.0 OR GPL-1.0-or-later
- opensuse-leap 16.0: perl-CryptX 0.89.0-bp160.1.1 Β· Artistic-1.0 OR GPL-1.0-or-later
- opensuse-leap 16.0: perl-CryptX 0.89.0-bp160.1.1 Β· Artistic-1.0 OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms