1.
CREATE
TABLE
`
user
` (
2.
`username`
varchar
(30),
3.
`
password
`
varchar
(32),
4.
PRIMARY
KEY
(`username`)
5.
)
dan data username serta password admin yang disimpan dalam tabel di atas adalah sbb:
username : admin
password : d46d2f5893d5029080d74310eaa9306e
password di atas adalah hasil enkripsi dari password aslinya
‘admin123′. Enkripsinya sendiri menggunakan metode md5 yang
dikombinasikan dengan pengacak. Baca kembali penjelasannya di artikel
saya tentang tips membuat password dengan md5. Berikut ini proses enkripsinya:
1.
$pengacak
=
"hduwAHDU28328heUUH7283xx"
;
2.
$password
=
"admin123"
;
$passwordEnkrip = md5($pengacak.md5($password.$pengacak));
Nah… untuk mekanisme update password ini pada dasarnya meminta user,
dalam hal ini administratornya, untuk memasukkan password yang lama
terlebih dahulu (‘admin123′) ke dalam form update. Selanjutnya user
diminta pula memasukkan password baru. Untuk password baru ini, user
diminta memasukkan dua kali, karena hal ini berguna untuk mengkonfirmasi
benar tidaknya penulisan ejaan password baru tersebut.
OK… dari penjelasan di atas, kita coba buat dahulu formnya
form.html
01.
<
h1
>Update Password Administrator</
h1
>
02.
03.
<
form
method
=
"post"
action
=
"update.php"
>
04.
<
table
>
05.
<
tr
><
td
>Masukkan password lama</
td
><
td
><
input
type
=
"password"
name
=
"oldPass"
/></
td
></
tr
>
06.
<
tr
><
td
>Masukkan password baru</
td
><
td
><
input
type
=
"password"
name
=
"newPass1"
/></
td
></
tr
>
07.
<
tr
><
td
>Masukkan kembali password baru</
td
><
td
><
input
type
=
"password"
name
=
"newPass2"
/></
td
></
tr
>
08.
<
tr
><
td
></
td
><
td
><
input
type
=
"submit"
name
=
"submit"
value
=
"Submit"
></
td
></
tr
>
09.
</
table
>
10.
</
form
>
Setelah user (administrator) memasukkan password lama dan barunya
melalui form di atas, selanjutnya script update terlebih dahulu harus
mengecek benar tidaknya password lama. Untuk mengeceknya, kita
bandingkan hasil enkripsi dari password lama yang dimasukkan melalui
form di atas dengan data password lama terenkripsi yang tersimpan dalam
tabel user. Dengan demikian dalam script update terdapat statement
perbandingan sbb:
1.
if
(password terenkripsi di database = md5(
$pengacak
.md5(password lama dari form.
$pengacak
)))
Perhatikan perbandingan di atas… bahwa metode untuk mengenkripsi
password lama dari form harus sama dengan metode enkripsi ketika
menyimpan password lama di database, termasuk pengacaknya.
Jika password terenkripsi yang disimpan dalam database sama dengan
password terenkripsi dari form, atau dengan kata lain password lama yang
dimasukkan via form dan di database sama, maka selanjutnya cek
kesesuaian antara password baru 1 dan 2. Jika sama, maka proses update
password bisa dilakukan. Perhatian… bahwa sebelum mengupdate passwordnya
di database, jangan lupa untuk mengenkripsinya terlebih dahulu. Gunakan
metode enkripsi dan pengacak yang sama.
Dari penjelasan di atas, kita buat script untuk update passwordnya.
update.php
01.
<?php
02.
03.
$pengacak
=
"hduwAHDU28328heUUH7283xx"
;
04.
05.
mysql_connect(
"dbhost"
,
"dbuser"
,
"dbpass"
);
06.
mysql_select_db(
"dbname"
);
07.
08.
09.
10.
$passwordlama
=
$_POST
[
'oldPass'
];
11.
$passwordbaru1
=
$_POST
[
'newPass1'
];
12.
$passwordbaru2
=
$_POST
[
'newPass2'
];
13.
14.
15.
16.
$query
=
"SELECT * FROM user WHERE username = 'admin'"
;
17.
$hasil
= mysql_query(
$query
);
18.
$data
= mysql_fetch_array(
$hasil
);
19.
20.
if
(
$data
[
'password'
] == md5(
$pengacak
.md5(
$passwordlama
.
$pengacak
)))
21.
{
22.
23.
if
(
$passwordbaru1
==
$passwordbaru2
)
24.
{
25.
26.
27.
28.
29.
$passwordbaruenkrip
= md5(
$pengacak
.md5(
$passwordbaru1
.
$pengacak
));
30.
31.
$query
=
"UPDATE user SET password = '$passwordbaruenkrip' WHERE username = 'admin' "
;
32.
$hasil
= mysql_query(
$query
);
33.
if
(
$hasil
)
echo
"Update password Admin sukses"
;
34.
}
35.
else
echo
"Password baru Anda tidak sama"
;
36.
}
37.
else
echo
"Password lama Anda salah"
;
38.
39.
?>