首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CakePHP BlowFish比较密码

CakePHP BlowFish比较密码
EN

Stack Overflow用户
提问于 2015-08-18 01:06:20
回答 2查看 1K关注 0票数 0

在beforeSave函数中的模型用户中,我使用河豚来加密密码,如下所示:

代码语言:javascript
复制
$passwordHasher = new BlowfishPasswordHasher();
            $this->data[$this->alias]['password'] = $passwordHasher->hash(
                $this->data[$this->alias]['password']
            );

但我不知道如何将其解密,以便将密码与我的自定义登录进行比较。救命啊!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-18 06:50:57

首先获得保存的密码,然后您可以使用

代码语言:javascript
复制
$newHash = Security::hash($current_pass, 'blowfish', $pass_stored);

然后比较

代码语言:javascript
复制
$newHash === $pass_stored

这里存储的密码用作盐类

票数 2
EN

Stack Overflow用户

发布于 2015-08-18 06:47:29

你永远无法解密回来。这就是为什么它是安全的。

创建用户时,您可以对密码进行散列,并将其存储在数据库中。然后,当用户试图再次登录Hash时,他输入的密码。如果这与数据库中的密码匹配,则密码是正确的。

简单地说,注册中的用户输入密码12345这个散列到54321。你永远不应该知道他最初是加入12345的。因此,如果他输入登录12345,它将再次散列到54321,这是匹配的,所以他输入的密码是正确的。如果他输入错误的密码,它会散列到其他东西(即53421),因此它将不匹配。

在linux中,您可以使用以下命令来确保1始终具有相同的

代码语言:javascript
复制
echo 1 | sha1sum
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32062032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档