• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/security/password.php
  • Класс: BitrixMainSecurityPassword
  • Вызов: Password::equals
static function equals($hash, $password, $original = true): bool
{
	if($original)
	{
		$salt = "";
		$hashLength = strlen($hash);

		if($hashLength > 100)
		{
			//new SHA-512 method, format is $6${salt}${hash}
			$salt = substr($hash, 3, 16);

			$password = static::hash($password, $salt);
		}
		else
		{
			if($hashLength > 32)
			{
				//old salt+md5 method, format is {salt}{hash}
				$salt = substr($hash, 0, $hashLength - 32);
			}
			//else very old format {hash} without a salt

			$password = $salt.md5($salt.$password);
		}
	}

	return hash_equals($hash, $password);
}