【发布时间】:2010-06-07 18:47:30
【问题描述】:
我正在对返回加密数据的 mysql 进行查询。如果可能的话,我想在将结果发送到视图之前对其进行解码。在控制器(甚至模型)中而不是在视图中处理解码似乎是更好的形式。
不过,我似乎不知道该怎么做。
我在想我可以遍历对象,对其进行解码,然后将其推送到另一个数组,该数组将被发送到视图。问题是我不知道(并且需要保留)查询的索引。
所以查询可能会返回如下内容:
[id] => 742
[client_id] => 000105
[last] => dNXcw6mQPaGQ4rXfgIGJMq1pZ1dYAim0
[first] => dDF7VoO37qdtYoYKfp1ena5mjBXXU0K3dDlcq1ssSvCgpOx75y0A==
[middle] =>iXy6OWa48kCamViDZFv++K6okIkalC0am3OMPcBwK8sA==
[phone] => eRY3zBhAw2H8tKE
有什么想法吗?
结束了:
function name(){
$data['e_key']=$this->e_key;
$clid = $this->uri->segment(3);
$name = $this->Clients_model->getNameData('*','client_id='.$clid,'');
$nameArray= array();
foreach ($name->result() as $row){
$x = $row;
$keys = array('id','client_id');
$unenc = array();
foreach ($x as $key=>$value){
if(! in_array($key, $keys)){
$unenc[$key]=$this->encrypt->decode($value,$this->e_key);
}else{
$unenc[$key]=$value;
}
}
array_push($nameArray,$unenc);
}
$data['name'] = $nameArray;
$this->load->view('names/name_view',$data);
}
【问题讨论】:
-
注意不要将加密与编码混淆(我注意到诸如“需要解码加密数据”之类的短语,以及稍后谈到 base 64 的答案)。它们不是一回事,如果您没有正确保护数据,或者更糟糕的是,您的客户的要求,您可能(例如,如果您正在处理信用卡)违法!
-
@Kurucu:谢谢你的来信。我想我使用了“解码”这个术语,因为这就是 codeigniter 中的方法被称为 (
encrypt->encode/encrypt->decode)。我在这篇文章中从技术上讲是加密,而不是编码。
标签: php arrays encryption codeigniter