Apa itu enkripsi dan penggunaannya

Jika kita sedang merencakanan sebuah sistem maka kita juga akan berurusan dengan security dan salah satunya adalah enkripsi. Definisi enkripsi secara detail adalah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus (Sumber Wikipedia).

Kapan kita perlu menggunakan enkripsi
Berikut adalah beberapa kasus yang menyebabkan kenapa kita harus menggunakan sebuah enkripsi:

  1. Jika kita akan menyimpan password member ada user kedalam table user, jika didalam php biasanya menggunakan enkripsi MD5.
  2. Pada aplikasi instant messaging seperti pada BBM, Whatsapp, Line, KakaoTalk. Biasanya enkripsi dilakukan ketika aplikasi mengirim pesan ke server dan response dikembalikan dari server.

Sebenarnya masih banyak contoh penggunaan lain dari enkripsi, namun menurut saya kedua contoh diatas merupakan contoh yang paling mudah dipahami karena banyak yang menggunakannya.

Mari kita jelaskan secara detail mengapa kedua contoh diatas memerlukan sebuah enkripsi.

1. Enkripsi pada saat menyimpan password user
Jika kita membuat sebuah website yang didalamnya ada module admin yang dipergunakan untuk melakukan maintenance content (jika anda menggunakan CMS seperti WordPress, Joomla, Drupal pasti anda akan selalu menggunakannya). Sebenarnya pada saat melakukan insert kedalam database kita tidak perlu mengenkripsi password data anda, namun karena alasan keamanan sebaiknya anda melakukannya umumnya pada website basic enkripsi itu adalah menggunakan metode MD5. Ada beberapa hal yang harus anda perhatikan disini yakni ketika anda menyimpan kedalam database maka data sudah di enkripsi menggunakan sebuah metode tertentu (dalam hal ini MD5), maka anda akan benar benar tidak tahu apa passwordnya ketika melihat di database.

Bagaimana jika user lupa password mereka? ini adalah pertanyaan lanjutan dari kasus diatas, karena kita menyimpan data password yang sudah di enkripsi maka jika kita lupa password yang bisa dilakukan adalah membuat sebuah form yang nantinya akan mensubmit data email atau username yang akan dicocokan dengan entry database. Jika ditemukan maka system akan mengirimkan email berisi link untuk mereset password anda. Yang ketika link tersebut anda buka anda akan mengentry password baru anda dan link ini haruslah valid ketika belum dibuka dan memiliki expired time (untuk menjaga orang yang tidak bertanggung jawab).

2. Enkripsi pada aplikasi instant messaging
Pada aplikasi instant messaging seperti BBM, Whatsapp, Line dan sebagainya ada sebuah enkripsi yang dilakukan ketika user mengirim data ke server, dan ketika server mengirim data ke aplikasi lagi. Mengapa hal ini perlu dilakukan alasannya sederhana yakni aplikasi instant messaging adalah aplikasi personal yang isi data dari percakapan itu umumnya data yang tidak boleh diketahui oleh orang lain (kecuali dari si pembuat aplikasi). Biasanya para pembuat aplikasi ini bisa membalikan proses enkripsinya sehingga bisa mendapatkan data aslinya.

Pada contoh pertama biasanya disebut enkripsi satu arah atau enkripsi yang tidak bisa dibalik prosesnya (decrypt), sedangkan pada contoh kedua biasanya disebut enkripsi dua arah atau enkripsi yang bisa dibalik prosesnya (decrypt).