Provided by: libdbix-class-encodedcolumn-perl_0.00020-2_all bug

NAME

       DBIx::Class::EncodedColumn::Digest - Digest backend

SYNOPSYS

         #SHA-1 / hex encoding / generate check method
         __PACKAGE__->add_columns(
           'password' => {
             data_type   => 'CHAR',
             size        => 40 + 10,
             encode_column => 1,
             encode_class  => 'Digest',
             encode_args   => {
                 algorithm   => 'SHA-1',
                 format      => 'hex',
                 salt_length => 10,
                 charset     => 'utf-8',
             },
             encode_check_method => 'check_password',
         }

         #SHA-256 / base64 encoding / generate check method
         __PACKAGE__->add_columns(
           'password' => {
             data_type   => 'CHAR',
             size        => 40,
             encode_column => 1,
             encode_class  => 'Digest',
             encode_check_method => 'check_password',
             #no  encode_args necessary because these are the defaults ...
         }

DESCRIPTION

ACCEPTED ARGUMENTS

   format
       The encoding to use for the digest. Valid values are 'binary', 'hex', and 'base64'. Will
       default to 'base64' if not specified.

   algorithm
       The digest algorithm to use for the digest. You may specify any valid Digest algorithm.
       Examples are MD5, SHA-1, Whirlpool etc. Will default to 'SHA-256' if not specified.

       See Digest for supported digest algorithms.

   salt_length
       If you would like to use randomly generated salts to encode values make sure this option
       is set to > 0. Salts will be automatically generated at encode time and will be appended
       to the end of the digest. Please make sure that you remember to make sure that to expand
       the size of your db column to have enough space to store both the digest AND the salt.
       Please see list below for common digest lengths.

   charset
       If the string is not restricted to ASCII, then you will need to specify a character set
       encoding.

       See Encode for a list of encodings.

METHODS

   make_encode_sub $column_name, \%encode_args
       Returns a coderef that takes two arguments, a plaintext value and an optional salt and
       returns the encoded value with the salt appended to the end of the digest. If a salt is
       not provided and the salt_length option was greater than zero it will be randomly
       generated.

   make_check_sub $column_name, \%encode_args
       Returns a coderef that takes the row object and a plaintext value and will return a
       boolean if the plaintext matches the encoded value. This is typically used for password
       authentication.

COMMON DIGEST LENGTHS

            CIPHER    | Binary | Base64 |  Hex
          ---------------------------------------
          | MD2       |   16   |   22   |  32  |
          | MD4       |   16   |   22   |  32  |
          | MD5       |   16   |   22   |  32  |
          | SHA-1     |   20   |   27   |  40  |
          | SHA-256   |   32   |   43   |  64  |
          | SHA-384   |   48   |   64   |  96  |
          | SHA-512   |   64   |   86   | 128  |
          | CRC-CCITT |    3   |    2   |   3  |
          | CRC-16    |    5   |    6   |   4  |
          | CRC-32    |   10   |   14   |   8  |
          | Adler-32  |    4   |    6   |   8  |
          | Whirlpool |   64   |   86   | 128  |
          | Haval-256 |   32   |   44   |  64  |
          ---------------------------------------

SEE ALSO

       DBIx::Class::EncodedColumn::Crypt::Eksblowfish::Bcrypt, DBIx::Class::EncodedColumn, Digest

AUTHOR

       Guillermo Roditi (groditi) <groditi@cpan.org>

       Based on the Vienna WoC  ToDo manager code by Matt S trout (mst)

CONTRIBUTORS

       See DBIx::Class::EncodedColumn

LICENSE

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