转换mysql查询到蛋糕php查找

lam*_*com -2 cakephp

我有一个mysql查询如下:

select * from users  where email='xxx@xxx.com' and password = SHA1(CONCAT(SHA1(SHA1("123456")),salt))
Run Code Online (Sandbox Code Playgroud)

我想转换为蛋糕PHP查找使用beforSave功能:

public function beforeFind(array $queryData) {
           if(isset($queryData['conditions']['User.password'])) {                        
            $queryData['conditions']['User.password'] = 'SHA1(CONCAT(SHA1(SHA1("'.$queryData['conditions']['User.password'].'")),User.salt))';

           }           
           $this->log($queryData);

           return $queryData;
       }
Run Code Online (Sandbox Code Playgroud)

mysql查询运行okie但在cakephp中发现这不起作用.

谢谢你的帮助.

tha*_*tah 5

不要在查询中包含纯文本密码!

永远不应该这样做; 您将纯文本密码作为查询的一部分包含在内,并将"salt"值包含在可读字符串中.

可以记录(并备份)SQL查询,因此这些日志文件可以包含所有可读格式的信息!

您应该使用PHP "哈希"密码并使用哈希密码来查询数据库

通过AuthComponent散列密码

首先,如果您正在使用AuthComponent,CakePHP将自动执行所有这些操作; 它会查找/识别用户,并且(如果正确)允许您登录该用户.

请参阅:身份验证

要"手动"加密密码,请使用AuthComponent::Password()Security::hash()

我现在赶时间,但如果您需要更多信息或示例,请发表评论,然后我会添加该信息