Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DBIx::Class::EncodedCoUser:Contributed PeDBIx::Class::EncodedColumn::Digest(3)

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.

perl v5.32.0			  2019-09DBIx::Class::EncodedColumn::Digest(3)

NAME | SYNOPSYS | DESCRIPTION | ACCEPTED ARGUMENTS | METHODS | COMMON DIGEST LENGTHS | SEE ALSO | AUTHOR | CONTRIBUTORS | LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=DBIx::Class::EncodedColumn::Digest&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help