Я думаю, что здесь отсутствует что-то критическое. В CPasswordHelper::hashPassword
у нас есть строки:
$salt=self::generateSalt($cost);
$hash=crypt($password,$salt);
return $hash;
И в CPasswordHelper::verifyPassword
есть эта строка:
$test=crypt($password,$hash);
return self::same($test, $hash);
А как насчет соли? По моему мнению, его даже не держат, но это не имеет никакого смысла, поэтому я предполагаю, что не понял его полностью.