CakePHP BlowFish 比较密码
CakePHP BlowFish Compare Password
在我的模型用户中的 beforeSave 函数中,我使用河豚来加密我的密码,如下所示:
$passwordHasher = new BlowfishPasswordHasher();
$this->data[$this->alias]['password'] = $passwordHasher->hash(
$this->data[$this->alias]['password']
);
但我不知道如何解密它以便将密码与我的自定义登录名进行比较。请帮忙!!!
你永远无法解密回来。这就是它安全的原因。
创建用户时,您对密码进行哈希处理并将其存储在数据库中。然后,当用户尝试登录时,再次哈希他输入的密码。如果这与数据库中的匹配,则密码正确。
只需用户在注册时输入密码12345
,这会散列为54321
。你永远不应该知道他最初输入的是12345
。因此,如果他在登录时输入 12345
,它将再次散列为 54321
并且匹配,因此他输入的密码是正确的。如果他输入了错误的密码,它将散列为其他内容(即 53421
),因此它不会匹配。
在 linux bash 中你可以使用下面的命令来查看 1
将始终具有相同的
echo 1 | sha1sum
首先获取保存的密码,然后就可以使用这个了
$newHash = Security::hash($current_pass, 'blowfish', $pass_stored);
然后比较
$newHash === $pass_stored
此处存储密码用作盐
在我的模型用户中的 beforeSave 函数中,我使用河豚来加密我的密码,如下所示:
$passwordHasher = new BlowfishPasswordHasher();
$this->data[$this->alias]['password'] = $passwordHasher->hash(
$this->data[$this->alias]['password']
);
但我不知道如何解密它以便将密码与我的自定义登录名进行比较。请帮忙!!!
你永远无法解密回来。这就是它安全的原因。
创建用户时,您对密码进行哈希处理并将其存储在数据库中。然后,当用户尝试登录时,再次哈希他输入的密码。如果这与数据库中的匹配,则密码正确。
只需用户在注册时输入密码12345
,这会散列为54321
。你永远不应该知道他最初输入的是12345
。因此,如果他在登录时输入 12345
,它将再次散列为 54321
并且匹配,因此他输入的密码是正确的。如果他输入了错误的密码,它将散列为其他内容(即 53421
),因此它不会匹配。
在 linux bash 中你可以使用下面的命令来查看 1
将始终具有相同的
echo 1 | sha1sum
首先获取保存的密码,然后就可以使用这个了
$newHash = Security::hash($current_pass, 'blowfish', $pass_stored);
然后比较
$newHash === $pass_stored
此处存储密码用作盐