Digest::HMAC(3pm)

Digest::HMAC3pm

Keyed-hashing for message authentication

Usage

 # Functional style
 use Digest::HMAC qw(hmac hmac_hex);
 $digest = hmac($data, $key, \&myhash);
 print hmac_hex($data, $key, \&myhash);
 # OO style
 use Digest::HMAC;
 $hmac = Digest::HMAC->new($key, "Digest::MyHash");
 $hmac->add($data);
 $hmac->addfile(*FILE);
 $digest = $hmac->digest;
 $digest = $hmac->hexdigest;
 $digest = $hmac->b64digest;

Overview

HMAC is used for message integrity checks between two parties that share a secret key, and works in combination with some other Digest algorithm, usually MD5 or SHA-1. The HMAC mechanism is described in RFC 2104.

HMAC follow the common "Digest::" interface, but the constructor takes the secret key and the name of some other simple "Digest::" as argument.

The hmac() and hmac_hex() functions and the Digest::HMAC->new() constructor takes an optional $blocksize argument as well. The HMAC algorithm assumes the digester to hash by iterating a basic compression function on blocks of data and the $blocksize should match the byte-length of such blocks.

The default $blocksize is 64 which is suitable for the MD5 and SHA-1 digest functions. For stronger algorithms the blocksize probably needs to be increased.

Maintainer

Andrew Rodland <[email protected]>

Original authors

Graham Barr <[email protected]>, Gisle Aas <[email protected]>

Releases

14 releases since Debian 2.2 (Potato); the text changed 11 times.

  1. 2.2
  2. 3.0
  3. 3.1
  4. 4.0
  5. 5.0
  6. 6.0
  7. 7–9
  8. 10
  9. 11
  10. 12
  11. 13
  12. Arch

From perl-digest-hmac 1.05-3 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.