Trial And Eror

Knowledge Is Free..!
Start Working Smart, Not Hard
Start Sharing, Not Selling

Monday 2 March 2015

Disarankan untuk meninggalkan format hashing MD5, SHA1, SHA256 untuk menyimpan password.

Sekedar share dari Arie Nugraha di grup PHP Indonesia : 

PHP password_hash password_verifyBagi rekan-rekan yang sedang mengembangkan aplikasi dengan PHP dan kebetulan production environment-nya mendukung PHP > 5.5, sangat disarankan untuk meninggalkan format hashing MD5, SHA1, SHA256 untuk menyimpan password. Gunakan fungsi: password_hash
Contoh password_hash:
<?php
echo password_hash('sakitnyatuhdisini', PASSWORD_BCRYPT);
?>
Kode di atas akan menghasilkan hash dengan panjang 60 karakter dengan algoritma Blowfish yang nilainya tidak konstan (tidak pernah sama untuk password yang sama) dari waktu-waktu karena salt-nya yang mengambil dari nilai random sistem operasi yang selalu berubah. Implikasinya untuk melakukan pemeriksaan password ketika login, maka juga harus menggunakan fungsi: password_verify
Contoh password_hash dan password_verity untuk login :
<?php
$password = $_POST['password'];
$hashed = password_hash($password, PASSWORD_BCRYPT);
if (password_verify($password, $hashed)) {
    echo 'Password cocok gan!';
} else {
    die('Maaf, password anda salah! Disitu saya kadang merasa sedih frown emotikon');
}
?>
Sebagian besar framework PHP seperti Laravel sudah menggunakan hash ini untuk penyimpanan password.
Semoga bermanfaat.
Referensi:
Achour, Mehdi, et. al. (2015). PHP: password_verify - Manual. Diakses melalui http://php.net/manual/en/function.password-verify.php pada 2 Maret 2015
Disarankan untuk meninggalkan format hashing MD5, SHA1, SHA256 untuk menyimpan password.
Item Reviewed: Disarankan untuk meninggalkan format hashing MD5, SHA1, SHA256 untuk menyimpan password. 9 out of 10 based on 10 ratings. 9 user reviews.

4 comments:

  1. makasih tutorial nya gan
    saya mau nanya cara implementasi jika begini :
    include_once "config.php";
    $data = $conn->prepare("SELECT * FROM user WHERE uname = :uname");
    $data->execute(array(':uname'=>$uname, ':pass'=>$pass));
    $res = $data->fetch();

    if (count($res >= 1)) {


    }


    masih bingung soalnya

    ReplyDelete
    Replies
    1. include_once "config.php";
      $password = password_hash("$pass","PASSWORD_BCRYPT;
      $data = $conn->prepare("SELECT * FROM user WHERE uname = :uname");
      $data->execute(array(':uname'=>$uname, ':pass'=>$password));
      $res = $data->fetch();

      if (count($res >= 1)) {


      }

      Delete
  2. Mantap gan info nya.
    sekalian buat pelajaran..

    ReplyDelete
  3. min, blowfish maksudnya gimana?

    ReplyDelete

Followers

Translate

Copyright © Trial And Eror | Powered by Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com