3
我使用PHPass将用户密码存储在我的应用程序中,因为它比md5或sha1更安全。我有一个关于如何在密码中使用salt的问题。正确实施PHPass
从我收集的,我使用它像这样当您插入用户:
$pwdHasher = new PasswordHash(8, false);
$hash = $pwdHasher->HashPassword($input_password);
,然后当你检查登录的用户的详细信息,你这样做:
$pwdHasher = new PasswordHash(8, FALSE);
if ($pwdHasher->CheckPassword($input_password, $hash_from_db)) {
echo 'password correct';
} else {
echo 'wrong credentials';
}
但我在那里看到没有使用盐的东西。从我读过的内容来看,我的用户表应该有一个额外的字段用于散列密码时使用的salt,但PHPass的CheckPassword
方法不会接受盐?
谢谢。
可能的重复[盐包含在一个phpass散列或你需要盐的输入?](http://stackoverflow.com/questions/2596348/is-the-salt-contained-in-a- phpass-hash-or-do-you-need-to-salt-its-input) – 2011-12-29 22:55:41
我会离题告诉你改用我的库。但那只是错误的。 PHPass可能会自己创建salt,然后将其存储在哈希中。只需快速浏览一下文档。 – 2011-12-29 22:59:18