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