路径 vendor/illuminate/hashing/BcryptHasher.php
make函数
本函数用于生成密码的加密信息。比如说用于注册时,修改密码时的加密后的密码信息的生成。所以应当处理一下。
public function make($value, array $options = [])
{
//$cost = isset($options['rounds']) ? $options['rounds'] : $this->rounds; //原代码中用来重复hash的次数,详细解释看php函数 password_hash 的说明。
//$hash = password_hash($value, PASSWORD_BCRYPT, ['cost' => $cost]);
//$hash = md5($value, false); //你可以魔改成md5格式
$hash = hash('sha256',$value); //或者是其他格式
if ($hash === false) {
throw new RuntimeException('Bcrypt hashing not supported.');
}
return $hash;
}
check函数
本函数用于校验密码是否正确。比如说用于登录的检测
public function check($value, $hashedValue, array $options = [])
{
if (strlen($hashedValue) === 0) {
return false;
}
//return password_verify($value, $hashedValue); //原代码
//return md5($value, false)===$hashedValue //魔改成md5?
return hash('sha256', $value)===$hashedValue; //sha256?
}
needsRehash函数
本来用于是php中password_hash的信息刷新,既然你魔改成sha256或者是md5之类的了,这个函数也就没用了,于是直接返回false。
public function needsRehash($hashedValue, array $options = [])
{
//$cost = isset($options['rounds']) ? $options['rounds'] : $this->rounds;
//return password_needs_rehash($hashedValue, PASSWORD_BCRYPT, ['cost' => $cost]);
return false;
}
真刺激。