DBIx::Class::EncodedCoUser:Contributed PeDBIx::Class::EncodedColumn::Digest(3)NAMEDBIx::Class::EncodedColumn::DigestSYNOPSYS
#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},
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 ...
}
DESCRIPTIONACCEPTED 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.
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.
perl v5.14.12009-10DBIx::Class::EncodedColumn::Digest(3)