在checkhash上使用SHA512和自定义盐 - PhalconPHP

时间:2017-10-17 14:56:13

标签: php hash phalcon salt

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')
]);

2 个答案:

答案 0 :(得分:1)

在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。

答案 1 :(得分:0)

使用PHP password_hashpassword_verify,该对安全且易于使用。

仅使用哈希函数保存密码验证程序是不够的,只添加一个盐对提高安全性几乎没有作用。而是使用随机盐在HMAC上迭代大约100毫秒的持续时间并使用散列保存盐。更好的是使用PBKDF2Rfc2898DeriveBytespassword_hashBcryptpasslib.hash或类似功能等功能。关键是要让攻击者花大量时间通过蛮力找到密码。