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 毫秒,并用哈希值保存盐。最好使用 PBKDF2
、Rfc2898DeriveBytes
、password_hash
、Bcrypt
、passlib.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。
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 毫秒,并用哈希值保存盐。最好使用 PBKDF2
、Rfc2898DeriveBytes
、password_hash
、Bcrypt
、passlib.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。