我有一个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中发现这不起作用.
谢谢你的帮助.
你永远不应该这样做; 您将纯文本密码作为查询的一部分包含在内,并将"salt"值包含在可读字符串中.
可以记录(并备份)SQL查询,因此这些日志文件可以包含所有可读格式的信息!
您应该使用PHP "哈希"密码并使用哈希密码来查询数据库
首先,如果您正在使用AuthComponent,CakePHP将自动执行所有这些操作; 它会查找/识别用户,并且(如果正确)允许您登录该用户.
请参阅:身份验证
要"手动"加密密码,请使用AuthComponent::Password()
或Security::hash()
我现在赶时间,但如果您需要更多信息或示例,请发表评论,然后我会添加该信息
归档时间: |
|
查看次数: |
560 次 |
最近记录: |