Fix SSHA hash
This commit is contained in:
@@ -48,7 +48,7 @@ abstract class SSHA extends AbstractAlgorithm
|
||||
$saltedPassword = base64_decode(
|
||||
preg_replace("/" . $this->getPrefix() . "/i", "", $dbHash)
|
||||
);
|
||||
$salt = substr($saltedPassword, -32);
|
||||
$salt = substr($saltedPassword, -(strlen($saltedPassword) - $this->getHashLength()));
|
||||
$hash = self::ssha($password, $salt);
|
||||
|
||||
return hash_equals($dbHash, $hash);
|
||||
@@ -84,6 +84,13 @@ abstract class SSHA extends AbstractAlgorithm
|
||||
*/
|
||||
public abstract function getAlgorithm();
|
||||
|
||||
/**
|
||||
* Get hash length.
|
||||
*
|
||||
* @return int The hash length.
|
||||
*/
|
||||
public abstract function getHashLength();
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
|
||||
@@ -56,6 +56,14 @@ class SSHA256 extends SSHA
|
||||
return "sha256";
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function getHashLength()
|
||||
{
|
||||
return 32;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
|
||||
@@ -56,6 +56,14 @@ class SSHA512 extends SSHA
|
||||
return "sha512";
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function getHashLength()
|
||||
{
|
||||
return 64;
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user