is_unique for encrypted data - Printable Version +- CodeIgniter Forums (https://forum.codeigniter.com) +-- Forum: Using CodeIgniter (https://forum.codeigniter.com/forumdisplay.php?fid=5) +--- Forum: Best Practices (https://forum.codeigniter.com/forumdisplay.php?fid=12) +--- Thread: is_unique for encrypted data (/showthread.php?tid=67598) |
is_unique for encrypted data - pb.sajjad - 03-13-2017 Hi to all... I decide to encrypt user's sensitive data (tel, address,...) using CI encryption library. In form validation rules, for some fields like mobile number, I used is_unique[table.field]. But for encrypted data, it is useless! Is there anyway to solve this or I must write a callback function in form validation rules (a function that get a field, encrypted it and then compare it to all records)? I want to know also your opinion for encrypting these data. thanks. RE: is_unique for encrypted data - dunkindonato - 03-14-2017 (03-13-2017, 03:58 PM)pb.sajjad Wrote: Hi to all... Hi! Im new to CodeIgniter. How can you display encrypted data from the database to a, for example, a html table? Is there a function to decrypt an encrypted data? Im not sure but I think your idea to encrypt sensitive information is a good idea. RE: is_unique for encrypted data - neodite - 03-15-2017 (03-14-2017, 07:08 AM)dunkindonato Wrote: Hi! Im new to CodeIgniter. How can you display encrypted data from the database to a, for example, a html table? Is there a function to decrypt an encrypted data? Im not sure but I think your idea to encrypt sensitive information is a good idea. Yes, you can just use $this->encryption->decrypt($row->mobile) for example to display in html as plain text RE: is_unique for encrypted data - pb.sajjad - 03-15-2017 (03-14-2017, 07:08 AM)dunkindonato Wrote:(03-13-2017, 03:58 PM)pb.sajjad Wrote: Hi to all... First, you need to set up an encryption key in config/config.php, for example: PHP Code: $config['encryption_key'] = hex2bin('6a9f0dasfdklf890qwqwea0c7f2e7c67'); After initializing the encryption library in your controller (or autoload it): PHP Code: $this->load->library('encryption'); You could encrypt data with: PHP Code: $this->encryption->encrypt($var); And decrypt it with: PHP Code: $this->encryption->decrypt($var); More details on CI documentation. RE: is_unique for encrypted data - Martin7483 - 03-29-2017 You will need to add your own is_unique validation method. This method needs changing anyway as it only works on records that you are inserting. When updating a record it will fail because the method does not check if the posted update matches the found record. As for the encrypted data. Create your own is_unique method and just encrypt the value before using it in your query PHP Code: public function is_unique($str, $field) |