我有一个用户类,可以进行一些简单的验证。我想使用phpass将所有密码存储为哈希。但是,我不希望它成为User类设置哈希的工作,这是其他一些功能的工作。因此,如果我有一个名为setPassword的简单函数,如何确定密码为哈希。is_binary有效吗?我不是在这里比较哈希值,我只是想简单地确保密码是一个哈希值..无论哪种类型的md5..sha1 ...等等。我只想确保密码是哈希即可。
例:
class User
{
private password = NULL;
private $errors = array();
public function setPassword($password)
{
// make sure password is a hash...pseudo code
if (!password_is_hash($password))
{
$this->errors[] = 'Invalid password';
return $this;
}
$this->password = $password;
return $this;
}
public function getPassword()
{
return $this->password;
}
}
正如其他人所说的那样,哈希是字符串,尽管(在一定条件下)您可以说md5或sha1始终是n个字符,但您不能保证给定的字符串是哈希。
如果现在要比较的是将用户提供的密码与数据库中保存的哈希值进行比较,则可以从数据库中获取保存的哈希值,然后使用与创建保存的哈希值相同的函数对提供的字符串进行哈希处理,并确保它们相等,并且认证。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句