php bcry,[李景山php]每天laravel-20160917|BcryptHasher

namespace Illuminate\Hashing;

use RuntimeException;

use Illuminate\Contracts\Hashing\Hasher as HasherContract;

// more namespace

class BcryptHasher implements HasherContract

{// this BcryptHasher implements HasherContract

/**

* Default crypt cost factor.

*

* @var int

*/

protected $rounds = 10;// Default crypt cost factor

/**

* Hash the given value.

*

* @param  string  $value

* @param  array   $options

* @return string

*

* @throws \RuntimeException

*/

public function make($value, array $options = [])// one is value ,other is config or options

{// Hash the given value. means to crypt this value

$cost = isset($options['rounds']) ? $options['rounds'] : $this->rounds;// get the rounds use like cost

$hash = password_hash($value, PASSWORD_BCRYPT, ['cost' => $cost]);// use a wrap function to finish this action

// with three parameter ,value flag and config about cost

if ($hash === false) {// if wrong throw Exception

throw new RuntimeException('Bcrypt hashing not supported.');

}

// else return this value

return $hash;

}

/**

* Check the given plain value against a hash.

*

* @param  string  $value

* @param  string  $hashedValue

* @param  array   $options

* @return bool

*/

public function check($value, $hashedValue, array $options = [])

{

if (strlen($hashedValue) === 0) {

return false;

}// check len about this str

return password_verify($value, $hashedValue);// use a wrap function

// two parameter ,one is value and other is hashedValue

}//check the given value

/**

* Check if the given hash has been hashed using the given options.

*

* @param  string  $hashedValue

* @param  array   $options

* @return bool

*/

public function needsRehash($hashedValue, array $options = [])// determine thi value is been hashed

{

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

return password_needs_rehash($hashedValue, PASSWORD_BCRYPT, ['cost' => $cost]);

}// a wrap function

/**

* Set the default password work factor.

*

* @param  int  $rounds

* @return $this

*/

public function setRounds($rounds)

{

$this->rounds = (int) $rounds;

return $this;

}// set Rounds

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值