man > Crypt::Mac::HMAC(3pm)

πŸ“› NAME

Crypt::Mac::HMAC - Message authentication code HMAC

πŸš€ Quick Reference

Use CaseCommandDescription
Raw HMAC (binary)hmac('SHA256', $key, $data)Returns raw bytes
Hex‑encoded HMAChmac_hex('SHA256', $key, $data)Lowercase hex string
Base64 HMAChmac_b64('SHA256', $key, $data)Standard Base64
Base64 URL‑safehmac_b64u('SHA256', $key, $data)URL‑safe Base64
OO new instanceCrypt::Mac::HMAC->new('SHA256', $key)Object‑oriented interface
Add data$d->add('data')Accumulate data chunks
Finalize (binary)$d->macReturn raw MAC
Finalize (hex)$d->hexmacReturn hex MAC

πŸ“– SYNOPSIS

### Functional interface:
use Crypt::Mac::HMAC qw( hmac hmac_hex );

# calculate MAC from string/buffer
$hmac_raw  = hmac('SHA256', $key, 'data buffer');
$hmac_hex  = hmac_hex('SHA256', $key, 'data buffer');
$hmac_b64  = hmac_b64('SHA256', $key, 'data buffer');
$hmac_b64u = hmac_b64u('SHA256', $key, 'data buffer');
### OO interface:
use Crypt::Mac::HMAC;

$d = Crypt::Mac::HMAC->new('SHA256', $key);
$d->add('any data');
$d->addfile('filename.dat');
$d->addfile(*FILEHANDLE);
$result_raw  = $d->mac;     # raw bytes
$result_hex  = $d->hexmac;  # hexadecimal form
$result_b64  = $d->b64mac;  # Base64 form
$result_b64u = $d->b64umac; # Base64 URL Safe form

πŸ“˜ DESCRIPTION

Provides an interface to the HMAC message authentication code (MAC) algorithm. πŸ”

πŸ“€ EXPORT

Nothing is exported by default.

You can export selected functions:

use Crypt::Mac::HMAC qw(hmac hmac_hex );

Or all of them at once:

use Crypt::Mac::HMAC ':all';

βš™οΈ FUNCTIONS

πŸ”Ή hmac

Logically joins all arguments into a single string, and returns its HMAC message authentication code encoded as a binary string.

$hmac_raw = hmac($hash_name, $key, 'data buffer');
#or
$hmac_raw = hmac($hash_name, $key, 'any data', 'more data', 'even more data');

# $hash_name ... any <NAME> for which there exists Crypt::Digest::<NAME>
# $key ......... the key (octets/bytes)

πŸ”Ή hmac_hex

Logically joins all arguments into a single string, and returns its HMAC message authentication code encoded as a hexadecimal string.

$hmac_hex = hmac_hex($hash_name, $key, 'data buffer');
#or
$hmac_hex = hmac_hex($hash_name, $key, 'any data', 'more data', 'even more data');

# $hash_name ... any <NAME> for which there exists Crypt::Digest::<NAME>
# $key ......... the key (octets/bytes, not hex!)

πŸ”Ή hmac_b64

Logically joins all arguments into a single string, and returns its HMAC message authentication code encoded as a Base64 string.

$hmac_b64 = hmac_b64($hash_name, $key, 'data buffer');
#or
$hmac_b64 = hmac_b64($hash_name, $key, 'any data', 'more data', 'even more data');

# $hash_name ... any <NAME> for which there exists Crypt::Digest::<NAME>
# $key ......... the key (octets/bytes, not Base64!)

πŸ”Ή hmac_b64u

Logically joins all arguments into a single string, and returns its HMAC message authentication code encoded as a Base64 URL Safe string (see RFC 4648 section 5).

$hmac_b64url = hmac_b64u($hash_name, $key, 'data buffer');
#or
$hmac_b64url = hmac_b64u($hash_name, $key, 'any data', 'more data', 'even more data');

# $hash_name ... any <NAME> for which there exists Crypt::Digest::<NAME>
# $key ......... the key (octets/bytes, not Base64url!)

πŸ› οΈ METHODS

πŸ†• new

$d = Crypt::Mac::HMAC->new($hash_name, $key);

# $hash_name ... any <NAME> for which there exists Crypt::Digest::<NAME>
# $key ......... the key (octets/bytes)

🧬 clone

$d->clone();

πŸ”„ reset

$d->reset();

βž• add

$d->add('any data');
#or
$d->add('any data', 'more data', 'even more data');

πŸ“ addfile

$d->addfile('filename.dat');
#or
$d->addfile(*FILEHANDLE);

πŸ”’ mac

$result_raw = $d->mac();

πŸ” hexmac

$result_hex = $d->hexmac();

πŸ“¦ b64mac

$result_b64 = $d->b64mac();

πŸ” b64umac

$result_b64url = $d->b64umac();

πŸ“š SEE ALSO

Crypt::Mac::HMAC(3pm)
πŸ“› NAME πŸš€ Quick Reference πŸ“– SYNOPSIS πŸ“˜ DESCRIPTION πŸ“€ EXPORT βš™οΈ FUNCTIONS
πŸ”Ή hmac πŸ”Ή hmac_hex πŸ”Ή hmac_b64 πŸ”Ή hmac_b64u
πŸ› οΈ METHODS
πŸ†• new 🧬 clone πŸ”„ reset βž• add πŸ“ addfile πŸ”’ mac πŸ” hexmac πŸ“¦ b64mac πŸ” b64umac
πŸ“š SEE ALSO

Generated by phpman v4.9.25-2-g9a0821d · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-07-06 19:28 @216.73.217.93
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 Transitional!Valid CSS!
Enhanced by LLM: deepseek-v4-pro / taotoken.net / www.chedong.com - original format

^_top_^