Crypt::Password::StretchedHash - simple library for password hashing and stretching |
Crypt::Password::StretchedHash - simple library for password hashing and stretching
This module provides Generation / Verification method for hashed password string. There are two methods to handle parameters simply.
use Crypt::Password::StretchedHash qw( crypt verify ); use Digest::SHA;
# crypt my $pwhash = crypt( password => q{password}, hash => Digest::SHA->new("sha256"), salt => q{salt}, stretch_count => 5000, format => q{base64}, );
# verify my $result = verify( password => q{password}, password_hash => q{4hvvzqZio+l9vGifQ7xF2+FKiyWRcb4lV3OSo9PsfUw=}, hash => Digest::SHA->new("sha256"), salt => q{salt}, stretch_count => 5000, format => q{base64}, );
if you use class of the hash information(Crypt::Passwoed::SaltedHash::HashInfo), there are two methods to generate/verify string for DB Store.
use Your::Password::HashInfo; use Crypt::Password::StretchedHash qw( crypt_with_hashinfo verify_with_hashinfo ); my $hash_info = Your::Password::HashInfo->new; # crypt my $password = ...; my $pwhash_with_hashinfo = crypt_with_hashinfo( password => $password, hash_info => $hash_info, ); # verify my $password = ...; my $pwhash_with_hashinfo = ...; my $result = verify_with_hashinfo( password => $password, password_hash => $pwhash_with_hashinfo, hash_info => $hash_info, );
Crypt::Password::StretchedHash is simple library for password hashing and stretching. This module is available in generation and validation of the stretched password hash.
Generates stretched password hash. This uses the following hash algorithm.
for (1..$params{stretch_count}) { $hash->add( $pwhash, $params{password}, $salt ); $pwhash = $hash->digest; }
=item $params{password}
This is password string.
This is a hash function. This value must be the object of Digest::SHA or Digest::SHA3.
This is salt string.
Verifies stretched password hash. This compares the value of $params{password_hash} with the generated using crypt method.
Generates stretched password hash with hash information.
This is a hash information. You have to inherit L<Crypt::Password::StretchedHash::HashInfo>.
Verifies stretched password hash with hash information. This compares the value of $params{password_hash} with the generated using crypt method.
This is a hash information. You have to inherit L<Crypt::Password::StretchedHash::HashInfo>.
Copyright (C) Ryo Ito.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Ryo Ito <ritou.06@gmail.com>
Crypt::Password::StretchedHash - simple library for password hashing and stretching |