mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-02 08:42:15 +09:00
Fix truncated password hash for documents and comments written by non-members, if member module is configured to use a hashing algorithm that produces more than 60 chars
This commit is contained in:
parent
10cd76d0be
commit
f34c27c26b
3 changed files with 31 additions and 4 deletions
|
|
@ -138,6 +138,33 @@ class Password
|
|||
return $algorithm;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current default hashing algorithm, unless it will produce
|
||||
* hashes that are longer than 60 characters.
|
||||
*
|
||||
* In that case, this method returns the next best supported algorithm
|
||||
* that produces 60-character (or shorter) hashes. This helps maintain
|
||||
* compatibility with old tables that still have varchar(60) columns.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getBackwardCompatibleAlgorithm()
|
||||
{
|
||||
$algorithm = self::getDefaultAlgorithm();
|
||||
if (!in_array($algorithm, ['bcrypt', 'pbkdf2', 'sha1', 'md5']))
|
||||
{
|
||||
$candidates = self::getSupportedAlgorithms();
|
||||
foreach ($candidates as $algorithm)
|
||||
{
|
||||
if (in_array($algorithm, ['bcrypt', 'pbkdf2', 'sha1', 'md5']))
|
||||
{
|
||||
return $algorithm;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $algorithm;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the currently configured work factor for bcrypt and other adjustable algorithms.
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue