# phpman > info > Digest::HMAC

Digest::[HMAC(3pm)](https://www.chedong.com/phpMan.php/man/HMAC/3pm/markdown)     User Contributed Perl Documentation    Digest::[HMAC(3pm)](https://www.chedong.com/phpMan.php/man/HMAC/3pm/markdown)

NAME
       [Digest::HMAC](https://www.chedong.com/phpMan.php/perldoc/Digest%3A%3AHMAC/markdown) - Keyed-Hashing for Message Authentication

SYNOPSIS
        # Functional style
        use [Digest::HMAC](https://www.chedong.com/phpMan.php/perldoc/Digest%3A%3AHMAC/markdown) qw(hmac hmac_hex);
        $digest = hmac($data, $key, \&myhash);
        print hmac_hex($data, $key, \&myhash);

        # OO style
        use [Digest::HMAC](https://www.chedong.com/phpMan.php/perldoc/Digest%3A%3AHMAC/markdown);
        $hmac = [Digest::HMAC](https://www.chedong.com/phpMan.php/perldoc/Digest%3A%3AHMAC/markdown)->new($key, "[Digest::MyHash](https://www.chedong.com/phpMan.php/perldoc/Digest%3A%3AMyHash/markdown)");

        $hmac->add($data);
        $hmac->addfile(*FILE);

        $digest = $hmac->digest;
        $digest = $hmac->hexdigest;
        $digest = $hmac->b64digest;

DESCRIPTION
       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](https://www.chedong.com/phpMan.php/perldoc/Digest%3A%3AHMAC/markdown)->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.

SEE ALSO
       [Digest::HMAC_MD5](https://www.chedong.com/phpMan.php/perldoc/Digest%3A%3AHMACMD5/markdown), [Digest::HMAC_SHA1](https://www.chedong.com/phpMan.php/perldoc/Digest%3A%3AHMACSHA1/markdown)

       RFC 2104

MAINTAINER
       Andrew Rodland <<arodland@cpan.org>>

ORIGINAL AUTHORS
       Graham Barr <<gbarr@ti.com>>, Gisle Aas <<gisle@aas.no>>

perl v5.32.1                      2021-09-26                 Digest::[HMAC(3pm)](https://www.chedong.com/phpMan.php/man/HMAC/3pm/markdown)
