Laravel使用多少费用/轮次?

时间:2015-08-18 23:21:37

标签: php laravel laravel-4 laravel-5 laravel-5.1

我正在尝试了解BcryptHasher.php文件中Laravel 4.2的以下功能是如何工作的:

/**
     * Hash the given value.
     *
     * @param  string  $value
     * @param  array   $options
     * @return string
     *
     * @throws \RuntimeException
     */
    public function make($value, array $options = [])
    {
        $cost = isset($options['rounds']) ? $options['rounds'] : $this->rounds;

        $hash = password_hash($value, PASSWORD_BCRYPT, ['cost' => $cost]);

        if ($hash === false) {
            throw new RuntimeException('Bcrypt hashing not supported.');
        }

        return $hash;
    }

我想我理解除了这一行之外的所有事情:

$cost = isset($options['rounds']) ? $options['rounds'] : $this->rounds;

我了解$ this-> rounds的默认值设置为10,然后是密码将被散列的“费用”。但是,我对$ options数组正在做什么以及如何影响成本感到困惑?

1 个答案:

答案 0 :(得分:6)

您可以在调用make方法时传递选项。

例如,使用立面:

$hashed = Hash::make($value, ['rounds' => 8]);

如果您未传递cost,则会使用$this->rounds10