NAME
Crypt::Passphrase::Bcrypt - A bcrypt encoder for Crypt::Passphrase
VERSION
version 0.008
SYNOPSIS
my $passphrase = Crypt::Passphrase->new(
encoder => {
module => 'Bcrypt',
cost => 14,
hash => 'sha256',
},
);
DESCRIPTION
This class implements a bcrypt encoder for Crypt::Passphrase. For high-end parameters Crypt::Passphrase::Argon2 is recommended over this module as an encoder, as that provides memory-hardness and more easily allows for long passwords.
Configuration
It accepts the following arguments:
cost
This is the cost factor that is used to hash passwords. It currently defaults to
14
, but this may change in the future.subtype
2b
This is the subtype everyone has been using since 2014.
2y
This type is considered equivalent to
2b
. It is common on php but not elsewhere.2a
This is an old and subtly buggy version of bcrypt. This is mainly useful for Crypt::Eksblowfish compatibility.
2x
This is a very broken version that is only useful for compatibility with ancient php versions.
This is
2b
by default, and you're unlikely to want to change this.hash
Pre-hash the password using the specified hash. It will support any hash supported by Crypt::Bcrypt, which is currently
'sha256'
,'sha384'
and'sha512'
. This is mainly useful because plain bcrypt is not null-byte safe and only supports 72 characters of input. This uses a salt-keyed hash to prevent password shucking.
SUPPORTED CRYPT TYPES
It supports the above described subtypes, as well as bcrypt-sha256
, bcrypt-sha384
and bcrypt-sha512
for prehashed bcrypt.
AUTHOR
Leon Timmermans <fawaka@gmail.com>
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.