PHP Encrypt / Decrypt : Simple Class untuk Enkripsi dan Dekripsi pada Codeigniter

Ada saat saat tertentu ketika data di URL harus di amankan,  dengan menggunakan enkripsi pada data URL tersebut. Pada  Website codeigniter anda membuat sebuah library, letaknya pada application/libraries/Encryption.php.

class Encryption {
 var $skey  = "SuPerEncKey2010"; // you can change it
 
    public  function safe_b64encode($string) {
 
        $data = base64_encode($string);
        $data = str_replace(array('+','/','='),array('-','_',''),$data);
        return $data;
    }

 public function safe_b64decode($string) {
        $data = str_replace(array('-','_'),array('+','/'),$string);
        $mod4 = strlen($data) % 4;
        if ($mod4) {
            $data .= substr('====', $mod4);
        }
        return base64_decode($data);
    }
 
    public  function encode($value){ 
  
     if(!$value){return false;}
        $text = $value;
        $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
        $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
        $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->skey, $text, MCRYPT_MODE_ECB, $iv);
        return trim($this->safe_b64encode($crypttext)); 
    }
    
    public function decode($value){
  
        if(!$value){return false;}
        $crypttext = $this->safe_b64decode($value); 
        $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
        $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
        $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->skey, $crypttext, MCRYPT_MODE_ECB, $iv);
        return trim($decrypttext);
    }
}

pada file application/libraries/autoload.php, tambahkan load library encrption 

$autoload['libraries'] = array('Encryption'); 


pada proses enkripsi dan dekripsi
$this->encryption->encode('Your data');
$this->encryption->decode('Your encrypted data');

Referensi : http://www.99points.info/2010/06/php-encrypt-decrypt-functions-to-encrypt-url-data/





0 komentar:

Posting Komentar