如何加密我的cookie或会话以使用phppass?

时间:2013-02-19 16:44:21

标签: php cookies bcrypt

我目前正在使用http://www.openwall.com/phpass/来解析我的密码。

即使输入相同的密码,哈希也会产生不同的哈希值。

我检查这样的密码:

$verify = $hasher->CheckPassword($password, $info['password']);

$password是输入的值,$info['password']是数据库中的哈希值。

现在,我正在设置这样的cookie:

setcookie(user, $_POST['username'], $hour, $path); 
setcookie(pass, $_POST['password'], $hour, $path);

这导致我的cookie成为密码而没有任何散列。如何使我的cookie更安全,存储我的密码?

如果我不能将它们存储在cookie中,我会在哪里存储它们?

1 个答案:

答案 0 :(得分:1)

不要在任何地方存储密码,特别是不能存放在COOKIES中。

要让用户登录,请使用会话。 会话cookie 只包含无意义的随机ID,而在服务器端,您只需要在会话中存储用户的ID:

$data = /* get user record from database based on username */;

if ($hasher->CheckPassword($_POST['password'], $data['password'])) {
    session_start();
    $_SESSION['userid'] = $data['userid'];
}

不需要更多。您无需在任何地方存储密码或重复此密码检查。只需查看$_SESSION['userid']即可识别用户。

详细了解手册中的会话:http://www.php.net/manual/en/book.session.php