Argon2iPasswordEncoder
extends BasePasswordEncoder
in package
implements
SelfSaltingEncoderInterface
Argon2iPasswordEncoder uses the Argon2i hashing algorithm.
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 = 4096
- $config : mixed
- __construct() : mixed
- Argon2iPasswordEncoder constructor.
- encodePassword() : mixed
- {@inheritdoc}
- isPasswordValid() : mixed
- {@inheritdoc}
- isSupported() : mixed
- 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.
- encodePasswordNative() : string
- encodePasswordSodiumExtension() : string
- encodePasswordSodiumFunction() : string
Constants
MAX_PASSWORD_LENGTH
public
mixed
MAX_PASSWORD_LENGTH
= 4096
Properties
$config
private
mixed
$config
= []
Methods
__construct()
Argon2iPasswordEncoder constructor.
public
__construct([int|null $memoryCost = null ][, int|null $timeCost = null ][, int|null $threads = null ]) : mixed
Parameters
- $memoryCost : int|null = null
-
memory usage of the algorithm
- $timeCost : int|null = null
-
number of iterations
- $threads : int|null = null
-
number of parallel threads
Return values
mixed —encodePassword()
{@inheritdoc}
public
encodePassword(mixed $raw, mixed $salt) : mixed
Parameters
- $raw : mixed
- $salt : mixed
Return values
mixed —isPasswordValid()
{@inheritdoc}
public
isPasswordValid(mixed $encoded, mixed $raw, mixed $salt) : mixed
Parameters
- $encoded : mixed
- $raw : mixed
- $salt : mixed
Return values
mixed —isSupported()
public
static isSupported() : 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
encodePasswordNative()
private
encodePasswordNative(string $raw) : string
Parameters
- $raw : string
Return values
string —encodePasswordSodiumExtension()
private
encodePasswordSodiumExtension(string $raw) : string
Parameters
- $raw : string
Return values
string —encodePasswordSodiumFunction()
private
encodePasswordSodiumFunction(string $raw) : string
Parameters
- $raw : string