COMPARISON TO SIMILAR MODULES

DigestColumns performs the hashing operation on insert and update. PassphraseColumn and EncodedColumn perform the operation when the value is set, or on new.

DigestColumns supports only algorithms of the Digest family.

EncodedColumn employs a set of thin wrappers around different cipher modules to provide support for any cipher you wish to use and wrappers are very simple to write.

PassphraseColumn delegates password hashing and encoding to Authen::Passphrase, which already has support for a huge number of hashing schemes. Writing a new Authen::Passphrase subclass to support other schemes is easy.

EncodedColumn and DigestColumns require all values in a hashed column to use the same hashing scheme. PassphraseColumn stores both the hashed passphrase value and the scheme used to hash it. Therefore it's possible to have different rows using different hashing schemes.

This is especially useful when, for example, being tasked with importing records (e.g. users) from a legacy application, that used a certain hashing scheme and has no plain-text passwords available, into another application that uses another hashing scheme.

PassphraseColumn and EncodedColumn support having more than one hashed column per table and each column can use a different hashing scheme. DigestColumns is limited to one hashed column per table.

DigestColumns supports changing certain options at runtime, as well as the option to not automatically hash values on set. Neither PassphraseColumn nor EncodedColumn support this.

OPTIONS

This module provides the following options for add_column:

passphrase => $encoding

This specifies the encoding passphrases will be stored in. Possible values are rfc2307 and crypt. The value of $encoding is pass on unmodified to the inflate_passphrase option provided by DBIx::Class::InflateColumn::Authen::Passphrase. Please refer to its documentation for details.

passphrase_class => $name

When receiving a plain string value for a passphrase, that value will be hashed using the Authen::Passphrase subclass specified by $name. A value of SaltedDigest, for example, will cause passphrases to be hashed using Authen::Passphrase::SaltedDigest.

passphrase_args => \%args

When attempting to hash a given passphrase, the %args specified in this options will be passed to the constructor of the Authen::Passphrase class specified using passphrase_class, in addition to the actual password to hash.

passphrase_check_method => $method_name

If this option is specified, a method with the name $method_name will be created in the result class. This method takes one argument, a plain text passphrase, and returns a true value if the provided passphrase matches the encoded passphrase stored in the row it's being called on.