Arfian Hidayat


Salurkan Ilmu Dengan Menulis

Keamanan Pesan Dengan Library Mcrypt di PHP

Enkripsi adalah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus.
Plaintext adalah teks informasi yang merupakan masukan bagi suatu algoritma enkripsi.
Ciphertext adalah teks tersandi atau teks sandi dari hasil enkripsiMcrypt merupakan suatu paket dari kumpulan program enkripsi data.
Mcrypt mendukung berbagai macam algoritma enkripsi dan mode operasi yang dapat diimplementasikan untuk membuat suatu program enkripsi dan dekripsi data sesuai dengan kebutuhan kita.

Requirement Mcrypt
Beberapa persyaratan yang harus ada agar dapat menggunakan Mcrypt yaitu :
1. Webserver yang sudah terinstalasi dengan PHP 4.x atau PHP 5.x
2. Modul Mcrypt, baik yang sudah dikompile dalam PHP atau sebagai modul yang terpisah (dalam hal ini memerlukan libmcrypt)

Apa itu Libmcrypt?

Libmcrypt merupakan suatu library dalam PHP yang mengimplementasikan dan menyediakan mekanisme standar untuk mengakses semua algoritma dan mode operasi yang terdapat dalam mcrypt. Tidak seperti library enkripsi lainnya, library mcrypt hanya menyediakan fungsi bagaimana untuk mengakses/menggunakan algoritma enkripsi (encryption algorithm) dan mode operasi yang terdapat dalam mcrypt.

Tetapi didalam PHP sendiri selain mcrypt, terdapat tambahan fungsi kriptografi lainnya seperti cracklib (untuk menguji kekuatan suatu password), mhash (untuk menghasilkan/mengimlementasikan Cryptographic Checksums, Message Digest, Message Authentication Code/MAC) dan OpenSSL sehingga dalam pembuatan suatu program enkripsi/dekripsi kita dapat menggunakan semua fungsi tambahan tersebut sesuai dengan kebutuhan.

Sebagai penegasan, Library mcrypt menunjang penggunaan algoritma yang memang lazimnya digunakan untuk enkrpsi dan dekripsi data. Hal itu dikarenakan algoritma yang terdapat dalam mcrypt merupakan algoritma dua arah (two way algorithm) atau yang memiliki invers sehingga dapat dilakukan proses dekripsi.

Sedangkan mhash sesuai dengan fungsinya dalam menghasilkan Cryptographic Checksums, Message Digest, Message Authentication Code/MAC menunjang algoritma fungsi hash (hash function) yang sifatnya satu arah (one way), dimana tidak memiliki invers/tidak bisa dilakukan proses kebalikannya.

Sedangkan fungsi hash merupakan suatu fungsi untuk menghasilkan suatu output dengan panjang yang tetap (fixed lenght) dari berbagai macam panjang input yang berbeda. Oleh karena itu biasanya algoritma fungsi hash seperti MD5, SHA, RIPE-MD, HAVAL, SNEFRU, dan lain sebagainya dalam PHP digunakan untuk enkripsi data yang disimpan dalam database seperti password, nomor kartu kredit atau data yang dianggap penting lainnya/rahasia.

Dimana metodenya hanya dengan mencocokan/membandingkan nilai output dari hasil perhitungan input menggunakan algoritma fungsi hash dengan suatu nilai yang ada dalam database yang merupakan hasil perhitungan nilai yang sama dengan input menggunakan algoritma fungsi hash yang sama. Implementasinya biasanya dalam hal otentikasi.

Mengapa menggunakan Mcrypt ?
Mcrypt mendukung berbagai macam algoritma enkripsi yang sifatnya dua arah (two way) baik berupa algoritma block cipher maupun algoritma stream cipher dan berbagai mode operasi.

Algoritma yang didukung library mcrypt yaitu :

1. Algoritma Block Cipher
Blowfish, Cast (128 dan 256 bit), DES, Gost, IDEA, RC2, RC6, Loki97, Mars, Rijndael (128, 192, 256 bit), Crypt, Safer64, Safer 128, Saferplus, Serpent, Twofish, TripleDes, XTEA.

2. Algoritma Stream Ciphers
Arcfour, Wake dan Enigma.

Untuk Algoritma Stream Cipher mode operasi yang digunakan yaitu mode stream, sedangkan untuk algoritma Block Cipher mode operasi yang digunakan diantaranya ECB, CTR, CBC, CFB, NCFB, OFB, NOFB.

Ada atau tidaknya algoritma dalam daftar algoritma di modul tergantung pada versi PHP yang digunakan.
Mode Operasi yang didukung library mcrypt yaitu :
1. ECB (Electronic Code Book)
2. CTR
3. CBC (Cipher Block Chaining)
4. CFB (Cipher Feedback)
5. NCFB (Non-CFB)
6. OFB (Output-Feedback)
7. NOFB (Non-OFB)
8. Stream

Hasil percobaan yang sudah saya lakukan dapat dilihat disini

Sumber :
- Wikipedia
- Echo Magazine Volume VII, Issue XX, Phile 0x0a.txt

Posting Oleh Admin, 14 April 2016, 19:21


algoritma enkripsi, arcfour, blowfish, blowfish-compat, cast-128, cast-256, cbc, cfb, ctr, dekripsi, des, ecb, enigma, enkripsi, enkripsi di php, fungsi mcrypt di php, gost, loki97, mcrypt, ncfb, nofb, ofb, rc2, rijndael-128, rijndael-192, rijndael-256, saferplus, serpent, stream, tripledes, twofish, wake, xtea