Mysql 在CakePHP中,是否有更好的方法使用AES_解密?
我有一些数据存储在一个使用AES_ENCRYPT加密的表中。我正在使用一个CakePHP应用程序来解密这些信息以供使用。目前,我已求助于构建SQL语句并将其存储在$query中,并使用:Mysql 在CakePHP中,是否有更好的方法使用AES_解密?,mysql,cakephp,aes,cakephp-2.4,Mysql,Cakephp,Aes,Cakephp 2.4,我有一些数据存储在一个使用AES_ENCRYPT加密的表中。我正在使用一个CakePHP应用程序来解密这些信息以供使用。目前,我已求助于构建SQL语句并将其存储在$query中,并使用: $results = $this->query($query); 虽然这是可行的,但我想知道是否有一种更像蛋糕一样的方法来实现这一点,而不必求助于手动编写SQL查询。在您的afterFind方法中添加类似的内容: function afterFind($results, $primary = f
$results = $this->query($query);
虽然这是可行的,但我想知道是否有一种更像蛋糕一样的方法来实现这一点,而不必求助于手动编写SQL查询。在您的afterFind方法中添加类似的内容:
function afterFind($results, $primary = false) {
if($primary == true){
foreach($results as $resultKey => $resultValue) {
$results[$resultKey][$this->alias]['decrypted'] = Security::decrypt ( $results[$resultKey][$this->alias]['encrypted'], $key, $hmacSalt );
}
}
return $results;
}
这是你的电话号码
或者,您也可以使用来做同样的事情。我有点困惑,因为您的链接指向Cake API 2.5版,而CakePHP主网站上的链接似乎不可用。查看API版本2.4文档,我没有看到Security::encrypt和Security::decrypt方法。当我尝试您的代码时,我得到一个错误:调用未定义的方法Security::decrypt()。这些方法是在未来的版本中发布的,还是我遗漏了什么?我目前正在运行Cake 2.4.2。嗯,你说得对,它们在2.4中不可用。在此之前,总会有这样一个小片段:(注意base64编码,您可能需要删除它)。或者,如果您已经有一些SQL可以解密您的数据,那么设置虚拟字段可能会更容易。