BCryptPasswordEncoder
extends BasePasswordEncoder
in package
implements
SelfSaltingEncoderInterface
BasePasswordEncoder is the base class for all password encoders.
Tags
Interfaces, Classes, Traits and Enums
- SelfSaltingEncoderInterface
- SelfSaltingEncoderInterface is a marker interface for encoders that do not require a user-generated salt.
Table of Contents
- MAX_PASSWORD_LENGTH = 72
- $cost : mixed
- __construct() : mixed
- encodePassword() : string
- Encodes the raw password.
- isPasswordValid() : mixed
- {@inheritdoc}
- needsRehash() : bool
- {@inheritdoc}
- comparePasswords() : bool
- Compares two passwords.
- demergePasswordAndSalt() : array<string|int, mixed>
- Demerges a merge password and salt string.
- isPasswordTooLong() : bool
- Checks if the password is too long.
- mergePasswordAndSalt() : string
- Merges a password and a salt.
Constants
MAX_PASSWORD_LENGTH
public
mixed
MAX_PASSWORD_LENGTH
= 72
Properties
$cost
private
mixed
$cost
Methods
__construct()
public
__construct(int $cost) : mixed
Parameters
- $cost : int
-
The algorithmic cost that should be used
Tags
Return values
mixed —encodePassword()
Encodes the raw password.
public
encodePassword(string $raw, string $salt) : string
It doesn't work with PHP versions lower than 5.3.7, since the password compat library uses CRYPT_BLOWFISH hash type with the "$2y$" salt prefix (which is not available in the early PHP versions).
Parameters
- $raw : string
-
The password to encode
- $salt : string
-
The salt
Tags
Return values
string —The encoded password
isPasswordValid()
{@inheritdoc}
public
isPasswordValid(mixed $encoded, mixed $raw, mixed $salt) : mixed
Parameters
- $encoded : mixed
- $raw : mixed
- $salt : mixed
Return values
mixed —needsRehash()
{@inheritdoc}
public
needsRehash(string $encoded) : bool
Parameters
- $encoded : string
Return values
bool —comparePasswords()
Compares two passwords.
protected
comparePasswords(string $password1, string $password2) : bool
This method implements a constant-time algorithm to compare passwords to avoid (remote) timing attacks.
Parameters
- $password1 : string
-
The first password
- $password2 : string
-
The second password
Return values
bool —true if the two passwords are the same, false otherwise
demergePasswordAndSalt()
Demerges a merge password and salt string.
protected
demergePasswordAndSalt(string $mergedPasswordSalt) : array<string|int, mixed>
Parameters
- $mergedPasswordSalt : string
-
The merged password and salt string
Return values
array<string|int, mixed> —An array where the first element is the password and the second the salt
isPasswordTooLong()
Checks if the password is too long.
protected
isPasswordTooLong(string $password) : bool
Parameters
- $password : string
-
The password to check
Return values
bool —true if the password is too long, false otherwise
mergePasswordAndSalt()
Merges a password and a salt.
protected
mergePasswordAndSalt(string $password, string|null $salt) : string
Parameters
- $password : string
-
The password to be used
- $salt : string|null
-
The salt to be used
Tags
Return values
string —a merged password and salt