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')
]);
答案 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_hash
和password_verify
,该对安全且易于使用。
仅使用哈希函数保存密码验证程序是不够的,只添加一个盐对提高安全性几乎没有作用。而是使用随机盐在HMAC上迭代大约100毫秒的持续时间并使用散列保存盐。更好的是使用PBKDF2
,Rfc2898DeriveBytes
,password_hash
,Bcrypt
,passlib.hash
或类似功能等功能。关键是要让攻击者花大量时间通过蛮力找到密码。