MediaWiki  REL1_31
BcryptPassword Class Reference

A Bcrypt-hashed password. More...

Inheritance diagram for BcryptPassword:
Collaboration diagram for BcryptPassword:

Public Member Functions

 crypt ( $password)
 
- Public Member Functions inherited from ParameterizedPassword
 needsUpdate ()
 Determine if the hash needs to be updated. More...
 
 toString ()
 Convert this hash to a string that can be stored in the database. More...
 
- Public Member Functions inherited from Password
 __construct (PasswordFactory $factory, array $config, $hash=null)
 Construct the Password object using a string hash. More...
 
 equals ( $other)
 Compare one Password object to this object. More...
 
 getType ()
 Get the type name of the password. More...
 

Protected Member Functions

 getDefaultParams ()
 Return an ordered array of default parameters for this password hash. More...
 
 getDelimiter ()
 Returns the delimiter for the parameters inside the hash. More...
 
 parseHash ( $hash)
 Perform any parsing necessary on the hash to see if the hash is valid and/or to perform logic for seeing if the hash needs updating. More...
 
- Protected Member Functions inherited from Password
 assertIsSafeSize ( $hash)
 Assert that hash will fit in a tinyblob field. More...
 

Additional Inherited Members

- Public Attributes inherited from Password
const MAX_HASH_SIZE = 255
 Hash must fit in user_password, which is a tinyblob. More...
 
- Protected Attributes inherited from ParameterizedPassword
array $args = []
 Extra arguments that were found in the hash. More...
 
array $params = []
 Named parameters that have default values for this password type. More...
 
- Protected Attributes inherited from Password
array $config
 Array of configuration variables injected from the constructor. More...
 
PasswordFactory $factory
 Factory that created the object. More...
 
string $hash
 String representation of the hash without the type. More...
 

Detailed Description

A Bcrypt-hashed password.

This is a computationally complex password hash for use in modern applications. The number of rounds can be configured by $wgPasswordConfig['bcrypt']['cost'].

Since
1.24

Definition at line 31 of file BcryptPassword.php.

Member Function Documentation

◆ crypt()

BcryptPassword::crypt (   $password)
Parameters
string$passwordPassword to encrypt
Exceptions
PasswordErrorIf bcrypt has an unknown error
MWExceptionIf bcrypt is not supported by PHP

Reimplemented from Password.

Definition at line 54 of file BcryptPassword.php.

References Password\$hash, MWCryptRand\generate(), and getDelimiter().

◆ getDefaultParams()

BcryptPassword::getDefaultParams ( )
protected

Return an ordered array of default parameters for this password hash.

The keys should be the parameter names and the values should be the default values. Additionally, the order of the array should be the order in which they appear in the hash.

When parsing a password hash, the constructor will split the hash based on the delimiter, and consume as many parts as it can, matching each to a parameter in this list. Once all the parameters have been filled, all remaining parts will be considered extra arguments, except, of course, for the very last part, which is the hash itself.

Returns
array

Reimplemented from ParameterizedPassword.

Definition at line 32 of file BcryptPassword.php.

◆ getDelimiter()

BcryptPassword::getDelimiter ( )
protected

Returns the delimiter for the parameters inside the hash.

Returns
string

Reimplemented from ParameterizedPassword.

Definition at line 38 of file BcryptPassword.php.

Referenced by crypt().

◆ parseHash()

BcryptPassword::parseHash (   $hash)
protected

Perform any parsing necessary on the hash to see if the hash is valid and/or to perform logic for seeing if the hash needs updating.

Parameters
string$hashThe hash, with the :<TYPE>: prefix stripped
Exceptions
PasswordErrorIf there is an error in parsing the hash

Reimplemented from ParameterizedPassword.

Definition at line 42 of file BcryptPassword.php.

References Password\$hash.


The documentation for this class was generated from the following file: