

Terkadang dalam membuat website yang digunakan oleh publik, kita perlu menyimpan data penting seseorang, diantaranya adalah berupa password. Seperti di website ini, ketika anda melakukan pendaftaran, anda diminta memasukkan password untuk account anda.
Saat mengisikan password, bisa saja anda berpikir 'wah, jangan-jangan webmaster bisa lihat passwordku?'
Secara teknis, memang bisa, karena dalam hal ini webmaster yang membuat script PHP-nya. Namun secara etika, kita mesti saling percaya, bahwa password merupakan privasi seseorang. Jadi meski saya bisa (mampu) membuat agar password anda terbaca oleh saya, tapi saya tidak melakukannya. Hal tersebut karena password anda tersimpan secara ter-enkripsi.
Dalam MySQL, terdapat fungsi PASSWORD() yang berguna untuk mengenkripsi sebuah string, sehingga meski suatu record bisa terbaca, tapi isi field bisa disembunyikan. Kalau tidak salah (cuma nebak) fungsi PASSWORD menggunakan fungsi MD5, yang cukup banyak digunakan karena kehandalannya.
Implementasi dari fungsi tersebut adalah, ketika seorang user melakukan pendaftaran, lalu data tersebut akan disimpan, maka field 'password' dikenakan fungsi PASSWORD() ini.
Contoh:
$username = 'aryo';
$password = 'stiki';
$fullname = 'Aryo Sanjaya';
$email = 'aryo@elang526.net';
insert into pengguna(username, password, nama, email)
values('$username',PASSWORD('$password'),'$fullname','$email')
Seperti terlihat, khusus field 'password', valuenya dikenakan fungsi PASSWORD() sehingga yang nantinya tersimpan bukan string 'stiki', tapi string '60e866ca5bc6cf90', yang merupakan hasil pengacakan string 'stiki'.
Langkah selanjutnya, yaitu untuk membaca data user ketika ada user yang 'login'. Untuk membandingkan password, maka value password yang diinputkan oleh user harus dikenakan fungsi PASSWORD() juga.
Contoh:
$username = 'aryo';
$password = 'stiki';
select nama, email from pengguna
where username = '$username'
and password = PASSWORD('$password')
Dengan seperti itu, maka perbandingan password dalam keadaan masih terenkripsi. Dan sang webmaster sekalipun tidak akan tahu password dari pengguna websitenya. Itu kalau dia punya etika untuk menerapkan teknik ini, atau teknik sejenisnya.
Demikian hal sedikit dari saya, semoga ada manfaatnya.
Aryo Sanjaya
Mas Aryo, Maksud saya mau tanya sama mas Aryo untuk cara mem password databases Mysql seperti databases MDB kalo databases MDB walaupun dicopykan databasesnya ketempat lain tetep aja melakukan entri password. nah sekarang misalnya saya punya databases yang bernama Karyawan didalam databases karyawan tersebut terdapat 5 table. jadi gimana caranya databases karyawan tersebut tidak dapat di "use karyawan" oleh orang lain walaupun databases tersebut di copykan ke komputer lain. sebelumnya saya ucapkan terima kasih sekali lagi
Hacked by :
» GRABBING KURS BANK BCA (7)Constructors sebuah methode yg dijalakan ketika sebuah object dibuat dari sebuah class sedangkan Destructors adalah methode untuk menghapus object ketika script/program berakhir.
» OOP Pada PHP (Part 1) (23)TERINSPIRASI DARI GRABBING KURS BI BANG ARYO
» Menghitung Jarak Waktu (33)Pembahasan mengenai dasar pemrograman OOP pada PHP
(Rakhmad Maulidi)
» Grabbing Kurs Dari BI (21)Mengitung jarak waktu dan menampilkan sebagai Javascript
Grabbing data adalah tindakan tidak sopan. Tapi kali ini yang dibahas adalah teknik grabbing, masalah moral dan etika silakan cari sendiri (inspired by Iwan Fals)