Penggunaan fungsi CRC32 pada PHP

Sistem yang kita buat itu tidak selalu aman. Tidak ada sistem yang benar - benar seratus persen aman. Selalu ada celah keamanan yang rentan diserang dari luar, terutama apabila sistem yang kita buat sudah terhubung dengan jaringan internet. Selalu ada celah yang luput dari pengamatan. Kabar baiknya, kawan... kita masih bisa mengupayakan untuk mengurangi celah - celah keamanan dalam sistem kita. Salah satunya adalah dengan metode enkripsi.

Apa itu enkripsi?

Berdasarkan pengertian yang saya ambil di Wikipedia, Enkripsi itu adalah proses untuk mengamankan sebuah informasi. Lalu bagaimana cara mengamankannya? Caranya informasi ini diubah menjadi deretan huruf dan angka yang nantinya tidak bisa dibaca tanpa menggunakan ilmu khusus. Contoh penggunaannya biasanya digunakan untuk menyembunyikan password di database. Biasanya setiap password yang disimpan di database itu dienkripsi supaya tidak bisa dibaca oleh orang yang tidak punya akses.

Nah, karena kebetulan ada tugas kuliah juga, kali ini saya akan bahas beberapa metode enkripsi menggunakan fungsi yang ada di bahasa pemrograman PHP. Check this out ya!

1. Encode dan Decode

Fungsi yang biasa digunakan adalah base64_encode() dan base64_decode(). Biasa keliatan kan kaya apa fungsinya? Ya, untuk mengenkripsi kita bisa gunain fungsi base64_encode dan buat mengembalikan teks yang sudah dienkripsi kita bisa gunain fungsi base64_decode. Nah, berikut ini adalah contoh penggunaannya:

";   
   echo "teks yang diencode = ".$encode."
"; echo "teks yang didecode = ".$decode; ?>

Dan jika kita run di browser, bakal muncul tampilan kaya gambar di bawah:

Penggunaan fungsi CRC32 pada PHP

Karena prosesnya sederhana dan rentan terhadap keamanan data, biasanya fungsi base64 ini digunakan bersamaan dengan fungsi lainnya.

2. Hashing

Nah, cara yang kedua adalah menggunakan metode hashing. Apa itu hashing? Yaitu salah satu metode yang bisa mengubah karakter apapun menjadi karakter acak. Nah hash ini ada banyak lho! Yang sering digunain itu (katanya) adalah MD5, SHA1, SHA256 dan CRC32. Ga kaya fungsi encode dan decode, hash ini cuma bisa enkripsi aja. Lho? Maksudnya? Kalau kamu ngubah teks, kamu ga ngembaliin teks itu lagi, ga bisa didekripsi lagi. Kenapa? Karena hash ini enkripsi yang bersifat satu arah. Saya biasanya gunain ini buat nyimpen password. Tapi kalau berdasar yang sudah berpengalaman, fungsi ini ga recommended lagi. Lebih direkomendasikan penggunaan fungsi password_hash() Di bawah ini contoh penggunaannya:

";   
   echo "MD5 Hash = ".$md5."
"; echo "SHA1 Hash = ".$sha1."
"; echo "CRC32 Hash = ".$crc32."
"; ?>

Lalu, coba kita run di browser. Berikut ini adalah tampilannya:

3. Encrypt dan Decrypt

Nah, kalau berdasar diskusi di forum pemrograman, metode encrypt dan decrypt ini recommended lho, kawan! Metode ini sering digunakan sama web developer buat mengamankan password yang disimpan di database. Nah, fungsi yang biasa digunakan di PHP itu adalah fungsi mcrypt cipher. Beda dengan metode Hash, gunain fungsi mcrypt ini bisa mengenkripsi dan juga mengembalikan lagi teks yang sudah dienkripsi lho! Selain itu, fungsi mcrypt ini memiliki beberapa metode algoritma cipher yang digunakan. Ada mcrypt_3des, mcrypt_blowfish, mcrypt_rijndael_128 dan lain-lain. Nah, berikut ini contoh penggunaannya:

";   
   echo "teks yang dienkripsi : ".$encrypted."
"; echo "teks yang didekripsi kembali :".trim($decrypted) . "\n"; ?>

Nah, sekarang kita coba run di browser:

Kesimpulan

Tidak ada sistem yang benar - benar seratus persen aman. Begitulah yang dikatakan kebanyakan orang. Kabar baiknya kita masih bisa mengupayakan untuk mengurangi celah - celah keamanan dalam sistem yang kita buat. Salah satunya adalah dengan mempelajari tentang encode dan decode, hashing, encrypt dan decrypt ini.

Selamat mencoba... Semangat terus ya!! :D