|
NAMEAuthen::Passphrase::PHPass - passphrases using the phpass algorithmSYNOPSISuse Authen::Passphrase::PHPass; $ppr = Authen::Passphrase::PHPass->new( cost => 10, salt => "NaClNaCl", hash_base64 => "ObRxTm/.EiiYN02xUeAQs/"); $ppr = Authen::Passphrase::PHPass->new( cost => 10, salt_random => 1, passphrase => "passphrase"); $ppr = Authen::Passphrase::PHPass->from_crypt( '$P$8NaClNaClObRxTm/.EiiYN02xUeAQs/'); $ppr = Authen::Passphrase::PHPass->from_rfc2307( '{CRYPT}$P$8NaClNaClObRxTm/.EiiYN02xUeAQs/'); $cost = $ppr->cost; $cost_base64 = $ppr->cost_base64; $cost = $ppr->nrounds_log2; $cost_base64 = $ppr->nrounds_log2_base64; $salt = $ppr->salt; $hash = $ppr->hash; $hash_base64 = $ppr->hash_base64; if($ppr->match($passphrase)) { ... $passwd = $ppr->as_crypt; $userPassword = $ppr->as_rfc2307; DESCRIPTIONAn object of this class encapsulates a passphrase hashed using the phpass algorithm invented by Solar Designer and described at <http://www.openwall.com/phpass/>. This is a subclass of Authen::Passphrase, and this document assumes that the reader is familiar with the documentation for that class.The phpass algorithm is based on the MD5 message digest algorithm. There is an eight-byte salt, which is conventionally restricted to consist of base 64 digits. There is also a cost parameter that controls the expense of hashing. First the salt and passphrase are concatenated and hashed by MD5. Then, 2^cost times, the hash from the previous stage is concatenated with the passphrase and hashed by MD5. The passphrase hash is the output from the final iteration. The passphrase hash is represented in ASCII using the crypt format with prefix "$P$". The first character after the format prefix is a base 64 digit giving the cost parameter. The next eight characters are the salt. The salt is followed by 22 base 64 digits giving the hash. The base 64 digits are ".", "/", "0" to "9", "A" to "Z", "a" to "z" (in ASCII order). CONSTRUCTORS
The cost and salt must be given, and either the hash or the passphrase.
METHODS
SEE ALSOAuthen::Passphrase, Digest::MD5AUTHORAndrew Main (Zefram) <zefram@fysh.org>COPYRIGHTCopyright (C) 2006, 2007, 2009, 2010, 2012 Andrew Main (Zefram) <zefram@fysh.org>LICENSEThis module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Visit the GSP FreeBSD Man Page Interface. |