NAME
    Template::Plugin::Digest::MD5 - TT2 interface to the MD5 Algorithm

SYNOPSIS
      [% USE Digest.MD5 -%]
      [% checksum = content FILTER md5 -%]
      [% checksum = content FILTER md5_hex -%]
      [% checksum = content FILTER md5_base64 -%]
      [% checksum = content.md5 -%]
      [% checksum = content.md5_hex -%]
      [% checksum = content.md5_base64 -%]

DESCRIPTION
    The *Digest.MD5* Template Toolkit plugin provides access to the MD5
    algorithm via the "Digest::MD5" module. It is used like a plugin but
    installs filters and vmethods into the current context.

    When you invoke

        [% USE Digest.MD5 %]

    the following filters (and vmethods of the same name) are installed into
    the current context:

    "md5"
        Calculate the MD5 digest of the input, and return it in binary form.
        The returned string will be 16 bytes long.

    "md5_hex"
        Same as "md5", but will return the digest in hexadecimal form. The
        length of the returned string will be 32 and it will only contain
        characters from this set: '0'..'9' and 'a'..'f'.

    "md5_base64"
        Same as "md5", but will return the digest as a base64 encoded
        string. The length of the returned string will be 22 and it will
        only contain characters from this set: 'A'..'Z', 'a'..'z', '0'..'9',
        '+' and '/'.

        Note that the base64 encoded string returned is not padded to be a
        multiple of 4 bytes long. If you want interoperability with other
        base64 encoded md5 digests you might want to append the redundant
        string "==" to the result.

    As the filters are also available as vmethods the following are all
    equivalent:

        FILTER md5_hex; content; END;
        content FILTER md5_hex;
        content.md5_base64;

WARNING
    The Digest::MD5 man page notes that the MD5 algorithm is not as strong
    as it used to be. It has since 2005 been easy to generate different
    messages that produce the same MD5 digest. It still seems hard to
    generate messages that produce a given digest, but it is probably wise
    to move to stronger algorithms for applications that depend on the
    digest to uniquely identify a message.

AUTHOR
    Andrew Ford <A.Ford@ford-mason.co.uk>

    Thanks to Darren Chamberlain for a patch for vmethod support.

COPYRIGHT
    Copyright (C) 2006 Andrew Ford. All Rights Reserved.

    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

SEE ALSO
    "Digest::MD5", Template

