目前我有一个带有身份验证的Laravel应用程序。我想知道我是否可以使用另一个PHP应用程序(独立于框架)使用相同的用户表进行身份验证。我不想再次使用Laravel,因为它会过度工程化。
我主要担心的是如何在Laravel中完成密码的哈希处理。我可以配置普通的PHP应用程序以相同的方式散列密码吗?如果是这样,我该怎么做?
答案 0 :(得分:2)
Laravel使用password_hash()
创建密码哈希(请参阅make()
方法源代码):
password_hash('somePassword555', PASSWORD_BCRYPT);
并password_verify()
检查密码哈希(请参阅check()
方法源代码):
password_verify('somePassword555', $hashedPasswordFromDB);
答案 1 :(得分:1)
这是您要查看的文件 供应商/ laravel /框架/ SRC /照亮/散列/ BcryptHasher.php
这些是他们正在使用的功能,password_hash();
和password_verify();
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;
}
function check($value, $hashedValue, array $options = [])
{
if (strlen($hashedValue) === 0) {
return false;
}
return password_verify($value, $hashedValue);
}