Pada kesempatan kali ini saya akan menjelaskan cara menggunakan hash API di PHP. Seperti yang sudah teman-teman ketahui, ketika teman-teman menggunakan bcrypt, merupakan cara terbaik untuk hash (hashing) password, tetapi sebagian developper masih menggunakan algoritma yang lama seperti SHA1, SHA2, dan MD5. Bahkan dari beberapa developper, tidak menggunakan salt pada saat melakukan hashing password. API hashing di sini merupakan fasilitas baru di PHP 5.5, yang bertujuan untuk menarik perhatian terhadap bcrypt dan menyembunyikan kompleksitasnya.

Berikut fungsi yang terdapat pada API hashing tersebut :

  • password_verify() = dapat di gunakan untuk memverifikasi password terhadap hash nya.
  • password_hash() = dapat di gunakan untuk hashing password.
  • password_needs_rehash() = datap di gunakan ketika password perlu di hash ulang.
  • password_get_info() = dapat memudahkan dalam memberikan info algoritma hasing yang di gunakan developper.

password_verify()

Bagaimana untuk menghasilkan hash dengan API baru ?, bisa teman-teman lihat bagaimana untuk memverifikasi password. Dan sebelum nya perlu teman-teman ingat untuk penyimpanan hash di database, akan tetapi hanya ketika user dalam keadaan log-in , teman-teman akan mendapatkan password standard. Fungsi password_verify() tersebut akan mengambil password standards dan string hash sebagai dua argumen. Mereka akan mengembalikan nilai true jika hashing cocok dengan password yang berlaku . Berikut seperti contoh di bawah ini :

password_hash() 

Meskipun terbilang fungsi cryp() cukup aman, sehingga sering di anggap banyak developper bahwa fungsi tersebut terlalu rumit dan rentan dengan kesalahan. Beberapa developper kemudian menggunakan salt dan algoritma yang lemah untuk menghasilkan hash dari sebuah password, seperti contoh :

Akan tetapi fungsi tersebut dapat membuat kode teman-teman jauh menjadi lebih aman. Ketika teman-teman membutuhkan password yang ingin di hash, cukup masukkan password ke dalam fungsi tersebut dan selanjut nya teman-teman akan mendapatkan hash yang selanjut nya akan di simpan ke database.

Dan yang terpenting di sini bahwa saja teman-teman tidak di haruskan untuk memberi salt dan parameter cost. API tersebut akan mengurus semua itu, Dan salt itu merupakan bagian dari hash, sehingga teman-teman tidak di anjurkan untuk menyimpan nya terpisah. Jika teman-teman ingin memberikan salt dan cost, dapat melakukan nya dengan memberikan argumen ketiga untuk fungsi.

password_needs_rehash()

Bagaimana jadi nya jika teman-teman perlu parameter cost dan salt untuk mengubah string hash? Hal ini bisa saja mungkin terjadi, karena teman-teman mulai saat ini memutuskan untuk meningkatkan keamanan dengan menambahkan salt yang lebih kuat atau parameter cost yang lebih besar. Selain itu, PHP dapat mengubah implementasi standar dari algoritma hashing. Pada semua kasus ini, saya yakin, teman-teman pasti ingin mengulang hashing password yang ada.

password_get_info()

password_get_info() menerima hash dan mengembalikan sebuah array asosiatif yang terdiri dari tiga unsur, berikut di antara nya :

  • algoName – nama algoritma yang digunakan
  • algo – konstanta yang mengidentifikasi algoritma tertentu
  • Options – berbagai pilihan yang digunakan saat menghasilkan hash

Sampai di sini pembahasan cara menggunakan hash API di PHP, semoga bermanfaat.