如何使用mysql的内置aes加密/解密函数,使用代码点火器活动记录来插入/更新/从数据库中选择数据?
我知道我可以使用普通的sql查询,但我想理想地使用活动记录。
由于
答案 0 :(得分:5)
如果您使用之前提供的代码:
$this->db->set('password',"AES_ENCRYPT('{$data['password']}','my_key')",FALSE);
在将密码传递给db-> set
之前,您仍应该转义密码使用:
$pass = $this->db->escape($data['password']);
这样,如果密码包含特殊字符,则不会终止查询
答案 1 :(得分:3)
如果通过传递FALSE作为最后一个参数关闭该特定子句的转义,您仍然可以使用AES_Encrypt:
$pass = $this->db->escape($data['password']);
$this->db->set('password', "AES_ENCRYPT('{$pass}','my_key')", FALSE);
同时指向CI内置Encryption Class,以及有关考虑1-way encryption的文章。