SHA512 和自定义 salt on checkhash - PhalconPHP

SHA512 and custom salt on checkhash - PhalconPHP

public function beforeSave(){
    $salt = "Acrec_$";
    $hashed = hash('sha512', $salt . $this->password);
    $this->password = $hashed;
}

我正在使用自定义 Salt 和自定义哈希来加密用户密码,但是,现在我需要登录用户。

里面的代码loginAction();

$this->auth->check([
    'email' => $this->request->getPost('email'),
    'password' => $this->request->getPost('password'),
    'remember' => $this->request->getPost('remember')
]);

与PHP一起使用password_hash and password_verify,这对安全且易于使用。

仅使用哈希函数保存密码验证程序是不够的,仅添加盐对提高安全性几乎没有帮助。取而代之的是用随机盐迭代 HMAC 大约 100 毫秒,并用哈希值保存盐。最好使用 PBKDF2Rfc2898DeriveBytespassword_hashBcryptpasslib.hash 或类似函数。关键是让攻击者花费大量时间通过暴力查找密码。

在 phalcon 中只需使用:

$password = $this->request->getPost('password');
$user->password = $this->security->hash($password);

$password = $this->request->getPost('password');
$user = Users::findFirst();
if ($this->security->checkHash($password, $user->password)) {
    // any logic here
}

默认使用内置盐的 bcrypt。