Artikel ini saya tulis atas permintaan seorang pembaca di blog ini yaitu Mas Pramana Ajus yang dimintakan di halaman Tanya Admin didalam blog ini. Sebenarnya Enkripsi MD5, bisa dikatakan cukuplah mudah dan tanpa tutorial sekalipun setiap orang bisa membuat aplikasi yang menghasilkan enkripsi MD5, karena PHP sendiri sudah menyediakan fungsi built ini untuk MD5.
Namun pada tutorial kali ini saya ingin lebih mengedepankan masalah Security, karena kita tau MD5 tidaklah cukup mumpuni sebagai proteksi data penting, terutama password. MD5 menurut pengalaman saya relative mudah untuk di pecahkan dengan cara Dekripsi maupun dengan cara-cara algoritma lainnya. Contoh penggunaan MD5 yang biasa digunakan orang dalam mengenkripsi suatu password, kira-kira adalah seperti di bawah ini :
<h2><center>Enkripsi MD5</center></h2> <center> <form method=post action=enkripsi.php /> <input name=data type=text> <input name=submit type=submit value=Enkrip /> </form> </center> <br> <center> <?php $data=md5($POST[data]); if ($_POST[submit]=="Enkrip") { echo "Hasil Enkripsi dengan MD5 dari kata <i><b>'$_POST[data]'</b></i> adalah <br/>"; echo $data; } ?>
Dan jika saya menjalankan program dan memasukkan kata “Daud Edison Tarigan” untuk dienkripsi akan menghasilkan tampilan seperti ini :
Hasil Enkripsi dengan MD5 dari kata 'Daud Edison Tarigan' adalah d41d8cd98f00b204e9800998ecf8427e
Sekilas hasil enkripsi tersebut memang sudah sangat sulit untuk dipecahkan artinya. Namun saat ini sudah banyak software yang digunakan untuk memecahkan sandi dari MD5. Selain itu ada satu teknik dasar yang cukup mudah untuk memecahkan password suatu system berbasis website yang passwordnya hanya dienkripsi dengan MD5. Bagaimana caranya? Sebenarnya mudah saja kalau kita memiliki akses kedalam database aplikasi yang mau di tuju. Sebagai contoh adalah aplikasi yang teman-teman install di PC sendiri menggunakan XAMPP. Standartnya ketika kita menginstall XAMPP, MySQL tidak dilengkapi dengan password (NO PASSWORD). Sehingga akan memudahkan orang membaca data database kita misalnya data password yang kita gunakan.
Kita misalkanlah kita membuat aplikasi yang passwordnya dienkripsi dengan MD5. Katakanlah password aslinya adalah “Daud Edison Tarigan” dimana hasil MD5 adalah “d41d8cd98f00b204e9800998ecf8427e” seperti contoh diatas. Maka didalam database kita akan menemukan Field Password berisi data “d41d8cd98f00b204e9800998ecf8427e” . Nah jika kita ingin masuk ke system, tentunya kita harus login dengan menggunakan password asli (yaitu “Daud Edison Tarigan”) bukan password hasil enkripsi MD5 (yaitu “d41d8cd98f00b204e9800998ecf8427e”). Sementara dari dalam database kita hanya menemukan password dalam bentuk sudah terenkripsi. Bagaimana cara memecahkan kode terenkripsi ini?? Kalau metode saya, tidak perlu dipecahkan cukup gantikan isi password terenkripsi tersebut dengan data tersenkripsi lainnya. Bagaimana cara menggantikannya dengan data terenkripsi lainnya??
Misalnya kita ingin merubah password tersebut menjadi password yang lain yaitu “Daud AplikasiPHP”. Maka kita hanya perlu mengenkripsi password “Daud AplikasiPHP” kedalam bentuk MD5. Kode untuk merubah enkripsi ini adalah :
< ?php $password="Daud AplikasiPHP"; $enkripsi = md5($password); echo "Hasil enkripsi dari $password adalah : "; echo $enkripsi; ?>
Jika program diatas kita jalankan, maka hasilnya akan terlihat seperti dibawah ini :
Hasil enkripsi dari Daud AplikasiPHP adalah : 4eb4263ff560260e4bace23bded3419a
Nah hasil enkripsi MD5 inilah yang akan kita gunakan untuk menggantikan Password yang telah terenkripsi didatabase yang kita temukan tadi. Copy kan data terenkripsi ini dan Edit Isi Field Password didalam database sehingga data dalam field Password adalah hasil enkripsi baru ini. Dengan kata lain, sebelumnya dalam field password berisi data “d41d8cd98f00b204e9800998ecf8427e”, namun setelah kita rubah akan menjadi “4eb4263ff560260e4bace23bded3419a”, yang artinya juga bahwa password aslinya telah berubah dari “ Daud Edison Tarigan” menjadi password baru “ Daud AplikasiPHP ”. Nah anda sekarang bisa login dengan password baru dan anda sudah dapat mengendalikan system tersebut.
Nah dari penjelasan ini, anda sudah bisa membayangkan bukan bahwa MD5 tidaklah cukup aman sebagai proteksi sebuah password. Nah, bagaimana caranya agar password kita aman?? Tunggu artikel saya selanjutnya ya….
Artikel ini menarik bagi Anda? Mari kita berdiskusi dan berbagi informasi terkait artikel ini dengan memberikan komentar di bawah ini. Mungkin saja tulisan yang saya sampaikan masih kurang tepat,
sehingga komentar dan perbaikan dari anda dapat memberikan masukan baru sehingga kita semua mendapatkan informasi yang benar-benar akurat. Silahkan komentari artikel ini menggunakan Account Sosial Media anda, namun hindari memberikan komentar yang menghina atau merendahkan pihak manapun.