is_unique for encrypted data |
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.
(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. (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 (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.
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) |
Welcome Guest, Not a member yet? Register Sign In |