Created 2014-04-29 05:27:49 | Updated 2014-07-21 03:29:16

 

Maksud dan tujuan digunakan one-way hash encryption pada password adalah agar password tersebut tidak bisa dibaca (baik oleh user sendiri,admin database, admin web server apalagi orang lain), sehingga sebisa mungkin tidak bisa untuk di decrypt.

Sesuai dengan prinsip di atas bila ada yg menyatakan bisa men-decrypt suatu password hash tersebut, belum tentu hasil decrypt-nya sama dengan nilai awal aslinya, karena sesuai dengan jenisnya, yaitu berupa data hash, maka bisa saja ada beratus..mungkin malah berjuta2 string yang berbeda tetapi mempunyai nilai hash yang sama. semisal (ini misal saja) password yang aslinya adalah string 'inipassword' dengan nilai hash 't6L35HGRnj36q81dQWnhFR6Vclj9uO0' dan ada juga string lain 'ngasalajadech' dengan nilai hash yang sama yaitu 't6L35HGRnj36q81dQWnhFR6Vclj9uO0'; maka sebenernya password yang aslinya 'inipassword' tapi saat dimasukkan password dengan string 'ngasalajadech' tetep aja bisa tembus (ini sekedar contoh kasus MD5 dengan 32bytes hash code), sehingga dengan mesin yang memiliki kecepatan perhitungan tinggi dan kamus kata yang terpilih dapat saja menjebol password MD5 dengan mudah, meski belum tentu nilai hash yg dihasilkan berasal dari kata sandi/password yang sama.

Mengingat dan menimbang hal-hal tersebut, hal umum yang digunakan untuk mengganti password adalah:

a) mereset password lama dengan password baru (user yang bersangkutan me-request untuk proses reset password, biasanya dengan memasukkan username/email addresnya nya; kemudian dari server/systemnya akan mengirim notifikasi ke email user yang bersangkutan link unique untuk reset passwordnya, jika link tersebut di klik maka akan menuju halaman reset password, di sini user mengisikan password baru beserta konfirmasi password barunya. Untuk keperluan ini biasanya diberikan jangka waktu reset password, dalam artian jika dalam jangka waktu tertentu password tidak diubah maka berlaku password yang lama)

b)update password; mekanismenya biasanya setelah masuk/login ke halaman profile-nya. pada halaman ubah password ini user akan mengisikan password lamanya, password baru dan konfirmasi password barunya. Jika password lama yg dimasukkan tidak sesuai dengan password yang existing maka proses tidak bisa dilakukan.

menampilkan password (meski untuk user bersangkutan) pada saat edit password adalah logika yang keliru dan ceroboh; demikian pun logika untuk membandingkan masukan password user dengan data hasil decrypt nilai password didatabase adalah keliru, karena seharusnya yang dibandingkan adalah nilai ecryption password yang dimasukkan dibandngkan dengan nilai yang ada di database(data di database selalu dalam kondisi ter ecryption, sehingga sysadmin/DBA-nya pun diharapkan tidak tahu password tiap2 user-nya)