MasRud.com
Rudi — 11 November 2018

Menggunakan Password_hash dan Password_verify pada PHP

Pada tulisan kali kita akan berbicara mengenai fungsi password_hash() dan password_verify() yang ada pada PHP.

Password_hash adalah salah satu fungsi yang dimiliki PHP untuk melakukan hashing menggunakan algoritma satu arah (one-way hashing). Fungsi ini terdapat pada PHP versi 5.5 ke atas.

Sedangkan Hash sendiri 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 yang sudah terhash tidak akan bisa dikembalikan lagi menjadi data aslinya.

Misalkan saja kita memiliki sebuah password, kemudian password tersebut dihash menggunakan fungsi password_hash(), maka password tersebut akan berubah menjadi kode acak seperti ini:

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

Contoh fungsi password_hash:

Kode di atas akan menghasilkan output:

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

Penjelasan kode di atas adalah sebagai berikut:

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

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

Contohnya fungsi password_verify seperti ini:

Lebih jelasnya begini,

Fungsi 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 tidak cocok maka akan menampilkan Invalid password.

Implementasi fungsi password_hash() dan password_verify()

Untuk menerapkan fungsi password_hash() dan password_verify() pada login aplikasi, silakan perhatikan dan amati contoh kode autentikasi yang sudah saya buat. Pada kode tersebut sudah saya tuliskan penjelasannya.

Agar lebih mudah mempelajari cara penerapan fungsi password_hash() dan password_verify(), silakan download source code login PHP di bawah ini:

Download source code

Fungsi password_hash sangat direkomendasikan untuk mengenkripsi password karena menggunakan algoritma hashing satu arah. Karena meskipun kita tau output password yang terhash, mustahil bagi kita untuk tahu password aslinya.

Jadi mulai sekarang, jika kalian akan membuat sebuah aplikasi dengan PHP, pastikan untuk menggunakan password_hash() dan password_verify() untuk keamanan loginnya.

Referensi:
- https://secure.php.net/manual/en/function.password-hash.php
- https://secure.php.net/manual/en/function.password-verify.php

PHP

Komentar