TELAH DIBUKA !!!

Toko Ebook Tutorial "RosihanAri.Net"


Free Ebook Tutorial from Rosihan Ari's Blog

Tutorial Javascript | Tutorial PHP Dasar | Tutorial AJAX | Tutorial CSS | Tutorial FPDF | Tutorial Wordpress



Slot iklan tersedia, pasang iklan di atas

Ebook yang direkomendasikan untuk Anda
Ebook Panduan Praktis OOP di PHP

Tips Membuat Script PHP Pengolah Password dengan MD5


September 13th, 2008 | by rosihanari | Cetak Artikel Cetak Artikel

Setiap password pengguna aplikasi hendaknya dienkripsi untuk keperluan faktor keamanan. Mengapa password harus dienkripsi? atau apa sih enkripsi itu? OK… enkripsi adalah teknik penyandian pesan, yang semula pesan tersebut dapat dibaca dan bermakna, setelah dienkripsi menjadi tidak terbaca dan tidak bermakna. Lantas… mengapa password harus dienkripsi? Pertanyaan tersebut saya balik, bagaimana jika password tidak dienkripsi? Apabila password tidak dienkripsi, maka dapat dengan mudah dibaca, dan digunakan oleh orang lain yang tidak berhak untuk masuk ke dalam sistem atau aplikasi.

Dalam PHP, tentu kita tidak asing dengan perintah atau function md5(). Function ini sering digunakan para programmer untuk mengenkripsi password sebelum hasil enkripsi tersebut disimpan dalam database sistem, ketika registrasi user baru. Hasil enkripsi md5() berupa suatu string acak dengan panjang 32 karakter (256 bit). Sudah amankah penggunaan md5()? Artikel ini akan membahasnya, serta memberikan tips bagaimana cara membuat script PHP yang baik untuk mengolah password.

Nah… biasanya, struktur code untuk mengenkripsi password dengan md5 dan menyimpannya ke dalam database (pada registrasi user baru) adalah sebagai berikut:

<?php

// input username baru
// input password asli baru ($passAsli)

$passEnkrip = md5($passAsli);

/* procedure simpan data username
dan password hasil md5() ke db */

?>

Sedangkan struktur code untuk loginnya adalah

<?php

// input login username
// input login password asli ($passAsli)

if (md5($passAsli) == $passEnkrip)
{
   // login sukses
   // procedure jika login sukses
}
else {
   // login gagal
   // procedure jika login gagal
}

?>

Lantas… benar-benar sudah amankah penggunaan md5() dengan struktur code di atas?

Beberapa periode yang lalu, mungkin penggunaan struktur seperti di atas sudah dirasa aman. Namun saat ini tidak aman lagi, karena sudah banyak tool untuk mendekripsi hasil enkripsi md5(). Salah satu toolnya seperti yang ada di situs http://md5.rednoize.com. Apa akibatnya jika password ini didekripsi? wah bahaya… bisa-bisa password aslinya ketahuan.

So… gimana donk? apakah md5() tidak usah digunakan lagi? Tidak usah khawatir, kita tetap bisa menggunakan md5() namun perlu sedikit kreatif. Maksudnya adalah bahwa kita perlu mengkombinasikan penggunaan md5() dengan pengacak, misalnya kita gunakan md5() berulangkali, atau menggabungkan password asli dengan suatu string tertentu lalu dienkripsi.

Berikut ini contoh struktur code untuk menyimpan password terenkripsi menggunakan pengacak

<?php

// input username baru
// input password baru  ($passAsli)

$pengacak = "AJWKXLAJSCLWLW";
$passEnkrip = md5($pengacak . md5($passAsli) . $pengacak );

/* procedure simpan data username
   dan password $passEnkrip ke db */

?>

Sedangkan berikut ini adalah struktur untuk loginnya

<?php

// input login username
// input login password asli ($passAsli)

$pengacak = "AJWKXLAJSCLWLW";

if (md5($pengacak . md5($passAsli) . $pengacak) == $passEnkrip)
{
   // login sukses
   // procedure jika login sukses
}
else {
   // login gagal
   // procedure jika login gagal
}
?>

Anda dapat mengubah isi pengacak atau mungkin mengubah format enkripsinya menjadi model lain, misalnya menggabungkan 3 atau lebih md5() dalam enkripsi. Dalam hal ini, hanya kita yang tahu format enkripsi atau pengacaknya. Intinya adalah jangan mengenkripsi password menggunakan md5() secara langsung, karena hal ini rawan untuk dihack pada saat ini.

Mudah-mudahan artikel ini membantu…


Baca Juga Artikel Terkait
Membuat Auto Deletion (Hapus Otomatis) Data Dengan Script PHP
Script PHP untuk Menampilkan Data dalam Tabel dengan Warna Baris Selang-seling
Beberapa Function Pengolah String di MySQL (Bag. 1)
Beberapa Function Pengolah String di MySQL (Bag. 2)
Script PHP untuk Membuat Report Format MS. Excel



Slot iklan tersedia, pasang iklan di atas


Kata kunci: PHP -


Ada 66 komentar dalam artikel ini.



  1. kodari says:

    saya mau tya gmana cara menghapus data yang da md5 nya lwat php?
    saya berharap bsa menemukan jawabannya…
    saya tggu balasannya di email saya..
    kodarinuryakin@yahoo.co.id

  2. dalle says:

    Maaf gan, ane butuh pencerahan.
    gan gimana cara kita melihat/descript kembali data yg udah kita encript dengan MD5 dan kode acak.
    sangat diharapkan pencerahannya gan.
    Makasih sebelumnya.

    • rosihanari says:

      @dalle: string yang sudah dienkrip dg MD5 tidak bisa lagi dikembalikan ke string semula (aslinya)