# Crypt::Digest::SHAKE - Hash functions SHAKE128, SHAKE256 from SHA3 family - perldoc - [phpMan]

## NAME
    [Crypt::Digest::SHAKE](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3ADigest%3A%3ASHAKE/markdown) - Hash functions SHAKE128, SHAKE256 from SHA3 family

## SYNOPSIS
       use [Crypt::Digest::SHAKE](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3ADigest%3A%3ASHAKE/markdown)

       $d = [Crypt::Digest::SHAKE](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3ADigest%3A%3ASHAKE/markdown)->[new(128)](https://www.chedong.com/phpMan.php/man/new/128/markdown);
       $d->add('any data');
       $d->addfile('filename.dat');
       $d->addfile(*FILEHANDLE);
       $part1 = $d->[done(100)](https://www.chedong.com/phpMan.php/man/done/100/markdown); # 100 raw bytes
       $part2 = $d->[done(100)](https://www.chedong.com/phpMan.php/man/done/100/markdown); # another 100 raw bytes
       #...

## DESCRIPTION
    Provides an interface to the SHA3's sponge function SHAKE.

## METHODS
  new
     $d = [Crypt::Digest::SHA3](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3ADigest%3A%3ASHA3/markdown)-SHAKE->new($num);
     # $num ... 128 or 256

  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);

  done
     $result_raw = $d->done($len);
     # can be called multiple times

## SEE ALSO
    *   CryptX, [Crypt::Digest](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3ADigest/markdown)

    *   <<http://en.wikipedia.org/wiki/SHA-3>>

