MasRud

Menggunakan Password_hash dan Password_verify pada Login PHP

02 April 2017|Kategori: PHP

Akhir-akhri ini semangat ngeblog saya kembali bangkit lagi setelah lama mati terkubur selama 1000 tahun.

Nah, pada kesempatan ini saya akan berbagi sedikit pengetahuan saya tentang pemrograman web.

Yaitu cara menggunakan fungsi password_hash dan password_verify pada PHP.

Password_hash adalah salah satu fungsi yang dimiliki PHP untuk melakukan hash menggunakan algoritma hashing satu arah (one-way hashing). Password_hash ada pada PHP versi 5.5.0 ke atas.

Hash adalah suatu mekanisme untuk memetakan suatu data yang diinputkan berupa teks polos (plain text) menjadi output berupa checksum atau fingerprint (kode acak dengan panjang karakter yang tetap).

Karena password_hash menggunakan algoritma hashing satu arah, maka data input yang sudah dihash tidak akan bisa didapatkan lagi data aslinya. Dan meskipun data yang diinputkan sama misalnya kata 'masrud.com', hasil yang didapatkan dari hash akan selalu berubah-ubah.

Misalkan kita memiliki data berupa password/kata sandi yang sudah terhash menggunakan fungsi password_hash menjadi kode acak seperti di bawah ini

$2y$10$EnIi90KP.0BqCVJgK21BrO3xzArxCZaiAPaUebCw.K2Xw71QOCZv2

Nah kode di atas tidak akan bisa diubah lagi ke bentuk aslinya menjadi teks polos. Untuk itulah adanya fungsi password_verify.

Untuk password_verify akan saya bahas setelah pembahasan password_hash selesai.

Contoh password_hash

Kode di atas akan menghasilkan output

$2y$10$EnIi90KP.0BqCVJgK21BrO3xzArxCZaiAPaUebCw.K2Xw71QOCZv2

Penjelasan kede di atas adalah sebagai berikut :

Kode output hasil dari proses hash tersebut kita simpan dalam database untuk membuat autentikasi login user dengan password_verify.

Bagaimana, sudah tahukan apa itu password hash?

Nah, sekarang mari kita bahas password_verify.

Password_verify adalah fungsi PHP yang berguna untuk melakukan verifikasi (mencocokkan) data yang telah terhash (memakai fungsi password_hash) dan data aslinya.

Contohnya password_verify seperti ini

Lebih jelasnya begini.

Password_verify akan mencocokkan data asli (secret password) dengan data yang terhash ($hash). Jika data cocok maka akan menampilkan pesan password is valid! dan jika data tidak cocok makan akan menampilkan Invalid password.

Bagaimana menerapkan fungsi password_hash dan password_verify?

Untuk menggunakan fungsi password_hash dan password_verify pada login aplikasi berbasis PHP caranya mudah. Namun saya tidak akan langsung menjelaskannya disini, sebab saya membuat sebuah contoh lengkap dengan penjelasan kodenya.

Untuk lebih mudah mempelajari cara penerapkan fungsi password_hash dan password_verify, silakan download source code login yang telah saya buat. Tampilan login formnya memang sangat sederhana namun sudah menerapkan fungsi password_hash dan password_verify serta sudah saya sertakan juga dokumentasi kodenya.

Untuk source codenya silakan download disini

Fungsi password_hash sangat direkomendasikan untuk mengenkripsi password karena menggunakan algoritma hashing satu arah.

Sebab meskipun kita sudah mendapatkan outputnya (password hasil hash yang tersimpan dalam database) maka mustahil kita akan mendapatkan inputnya (password asli user).

Jadi mulai sekarang, jika Anda akan membuat sebuah aplikasi berbasis web dengan php, pastikan untuk menggunakan password_hash dan password_verify untuk keamanan loginnya.

Demikianlah sedikit ilmu yang dapat saya bagikan, semoga dapat membawa manfaat dan keberkahan bagi kita semua. Mohon koreksinya jika ada kesalahan, saya sendiri juga sedang dalam tahap belajar.

Baca juga Membuat Notifikasi dengan Sweet Alert pada PHP

Sumber :