在beforeSave函数中的模型用户中,我使用河豚来加密密码,如下所示:
$passwordHasher = new BlowfishPasswordHasher();
$this->data[$this->alias]['password'] = $passwordHasher->hash(
$this->data[$this->alias]['password']
);但我不知道如何将其解密,以便将密码与我的自定义登录进行比较。救命啊!
发布于 2015-08-18 06:50:57
首先获得保存的密码,然后您可以使用
$newHash = Security::hash($current_pass, 'blowfish', $pass_stored);然后比较
$newHash === $pass_stored这里存储的密码用作盐类
发布于 2015-08-18 06:47:29
你永远无法解密回来。这就是为什么它是安全的。
创建用户时,您可以对密码进行散列,并将其存储在数据库中。然后,当用户试图再次登录Hash时,他输入的密码。如果这与数据库中的密码匹配,则密码是正确的。
简单地说,注册中的用户输入密码12345这个散列到54321。你永远不应该知道他最初是加入12345的。因此,如果他输入登录12345,它将再次散列到54321,这是匹配的,所以他输入的密码是正确的。如果他输入错误的密码,它会散列到其他东西(即53421),因此它将不匹配。
在linux中,您可以使用以下命令来确保1始终具有相同的
echo 1 | sha1sumhttps://stackoverflow.com/questions/32062032
复制相似问题