Fix SSHA hash

This commit is contained in:
Marcin Łojewski
2018-06-13 12:47:56 +02:00
parent 1df4cebf76
commit db6b5e0d2f
3 changed files with 24 additions and 1 deletions

View File

@@ -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
*/

View File

@@ -56,6 +56,14 @@ class SSHA256 extends SSHA
return "sha256";
}
/**
* @inheritdoc
*/
public function getHashLength()
{
return 32;
}
/**
* @inheritdoc
*/

View File

@@ -56,6 +56,14 @@ class SSHA512 extends SSHA
return "sha512";
}
/**
* @inheritdoc
*/
public function getHashLength()
{
return 64;
}
/**
* @inheritdoc
*/