NAME
Crypt::Passphrase::Scrypt - A scrypt encoder for Crypt::Passphrase
VERSION
version 0.004
DESCRIPTION
This class implements an scrypt encoder for Crypt::Passphrase. If one wants a memory-hard password scheme Argon2 is recommended instead.
METHODS
new(%args)
This creates a new scrypt encoder, it takes named parameters that are all optional. Note that some defaults are likely to change at some point in the future, as computers get progressively more powerful and cryptoanalysis gets more advanced.
cost
This is the cost factor that is used to hash passwords, it scales exponentially. It currently defaults to
16
, but this may change in any future version.block_size
This defaults to 8, you probably have no need for changing this.
parallelism
The number of threads used for the hash. This defaults to
1
, but this number may change in any future version.output_size
The size of a hashed value. This defaults to 16 bytes, increasing it only makes sense if your passwords actually contain more than 128 bits of entropy.
salt_size
The size of the salt. This defaults to 16 bytes, which should be more than enough for any use-case.
hash_password($password)
This hashes the passwords with scrypt according to the specified settings and a random salt (and will thus return a different result each time).
needs_rehash($hash)
This returns true if the hash uses a different cipher, or if any of the cost is lower that desired by the encoder.
crypt_types()
This class supports the following crypt types: scrypt
and 7
.
verify_password($password, $hash)
This will check if a password matches a scrypt hash.
AUTHOR
Leon Timmermans <leont@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2021 by Leon Timmermans.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.