Keamanan data itu sangatlah penting di dalam sebuah aplikasi. Kabar baiknya di dalam CodeIgniter terdapat library yang dapat digunakan untuk mengamankan data dengan teknik enkripsi, yaitu Encrypt Class. Encrypt class ini menyediakan two-way enkripsi data dan untuk proses enkripsinya menggunakan ekstensi Mcrypt PHP, yang merupakan syarat untuk menggunakan Encrypt Class.

Lalu, gimana caranya menggunakan encrypt class untuk program yang dibangun menggunakan codeigniter?
Try this out ya!

Overview

Pada tutorial kali ini kita akan coba membuat program sederhana untuk mencoba implementasi penggunaan library encrypt codeigniter. Output dari program ini akan menampilkan 3 bagian, yang pertama pesan sebelum dienkripsi, kedua pesan setelah dienkripsi dan ketiga pesan setelah didekripsi kembali.

Step 1 - Setting Key

Hal yang penting dalam proses enkripsi dan dekripsi adalah key. Tanpa key, kita mungkin bisa mengenkripsi suatu pesan, tapi nanti kita tidak bisa mendekripsi atau ngembaliin lagi pesan yang sudah kita enkripsi. Jadi, penting sekali untuk kita memilih key, di mana key ini nanti akan kita pakai untuk proses enkripsi dan juga dekripsi. Tanpa perlu diingatkan juga kita pasti tahu, kita mesti hati-hati buat jagain key kita. Karena bisa saja disalahgunakan oleh orang yang tidak bertanggung jawab untuk mengakses data supaya bisa didekripsi.

Berdasarkan rekomendasi dari dokumentasi codeigniter, supaya optimal dalam proses enkripsinya, panjang key kita kurang lebih 32 karakter (256 bit). Tentu key yang kita pakai untuk enkripsi dan dekripsi ini mesti random juga lho, kombinasi huruf dan angka kaya bahasa alay itu mungkin recommended buat dijadiin key.

Sebagai contoh di sini saya sudah menyiapkan key menggunakan nama blog lama saya, yaitu recodeku.blospot.com123456789123.

Untuk kemudahan ngetik di tutorial ini, key di contoh ini masih bisa ditebak dan juga sederhana, jadi untuk di environment production, pastikan key yang kita pakai sesuai best practice.

Step 2 - Buat controller proses encrypt dan decrypt

Pada tahapan ini kita akan membuat controller baru yang akan menangani proses enkripsi dan dekripsi. Di dalam controller yang akan kita buat terdapat method index() yang akan menangani program sederhana enkripsi dan dekripsi.

Sekarang kita buat controller baru dengan nama Tes_enkripsi.php. Setelah itu kita deklarasikan class Tes_enkripsi dan method index().

 <?php 
 defined('BASEPATH') OR exit('No direct script access allowed'); 
 class Tes_enkripsi extends CI_Controller { 
      function __construct(){ 
           parent::__construct(); 
           $this->load->library('encrypt'); 
      } 
      function index(){ 
           $msg = 'Ini Pesan rahasia lho! Jangan bilang siapa-siapa ya!'; //Plain text 
           $key = 'recodeku.blospot.com123456789123'; //Key 32 character 
           //default menggunakan MCRYPT_RIJNDAEL_256 
           $hasil_enkripsi = $this->encrypt->encode($msg, $key);  
           $hasil_dekripsi = $this->encrypt->decode($hasil_enkripsi, $key); 
           echo "Pesan yang mau dienkripsi: ".$msg."<br/><br/>"; 
           echo "Hasil enkripsi: ".$hasil_enkripsi."<br/><br/>"; 
           echo "Hasil dekripsi: ".$hasil_dekripsi."<br/><br/>"; 
      } 
 } 

Simpan file di folder controller application/controllers/, kita kasih nama filenya Tes_enkripsi.php di sesuaikan dengan nama classnya.

Inisialisasi Encrypt Class sama seperti umumnya inisialisasi kelas di CodeIgniter, Encrypt Class juga dipanggil di controller menggunakan method $this->load->library(). Ini contoh pemanggilan class:

 $this->load->library(‘encrypt’);   

Setelah dipanggil, objek Encrypt library bisa kita gunakan seperti contoh kode di bawah ini:

  $this->encrypt   

Step 3 - Uji Coba

Sekarang kita coba run di browser. Output yang akan muncul kurang lebih seperti screenshot di bawah ini:

Run controller

Lho kok hasil enkripsinya beda ya! Iya, sebagai info hasil dari enkripsinya beda-beda... Tapi, tenang aja... selama key yang kita pakai sama, hasil enkripsinya masih bisa didekripsi kok. ^^

Penutup

Di dalam aplikasi yang kita kembangkan, keamanan data itu sangatlah penting. Kabar baiknya di dalam CodeIgniter terdapat library yang dapat digunakan untuk mengamankan data dengan teknik enkripsi, yaitu Encrypt Class. Penggunaan library ini adalah salah satu upaya untuk mengamankan data di aplikasi yang kita kembangkan. Tidak seratus persen aman memang. Setidaknya ini mengurangi celah keamanan.

Semoga bermanfaat... ^^ Semangat terus yaaaaa~!

Note: Library ini cuman digunain di CodeIgniter versi lama dan sekarang udah DEPRECATED. Dipostingan berikutnya kita coba bahas Encryption library CodeIgniter.

Gun Gun Priatna
Software Engineer, Content Writer and Founder qadrlabs.com
Komentar

blog comments powered by Disqus