Tutorial Menggunakan password_hash dan password_verify

Pengertian password_hash
Password_hash adalah  fungsi di PHP yang bisa digunakan untuk hashing atau enkripsi menggunakan algoritma satu arah (one-way hashing). Fungsi ini dapat kita temukan pada PHP versi 5.5 atau diatasnya
Tidak seperti hash md5, password_hash bisa menghasilkan nilai hashing yang berbeda – beda untuk satu kalimat yang sama
Karena ini merupakan enkripsi satu arah, maka enkripsi ataupun hash yang telah dihasilkan tidak dapat dikembalikan lagi kedalam text aslinya.

Dalam sebuah contoh misalknya saya memiliki sebuah password mypassword lalu kemudian password tersebut di hash menggunakan fungsi password_hash, maka hasilnya password tersebut akan menjadi sebuah nilai acak seperti yang terlihat pada gambar dibawah ini



Penjelasan kode :
  • password_hash merupakan fungsi untuk melakukan hashing
  • pasword_default merupakan algoritma bawaan yang digunakan untuk hash yang menggunakan bcrypt yang dapt menghasilkan panjang output sebanyak 60 karakter atau bahkan lebih sehingga disarnakan untuk mengalokasikan field pada database sebanyak 255 karakter.
Dalam praktiknya nilai hash yang dihasilkan perlu disimpan kedalam database untuk selanjutnya dicocokan menggunakan fungsi password_verifiy()

Pengertian password_verify
Password_verify merupakan fungsi PHP yang digunakan untuk menocokan password yang telah di enkrispsi menggunakan fungsi password_hash()
Contoh penggunaan
<?php
//misalnya saya mendapatkn seperti pada variabel $hashed
$hashed='$2y$10$BxmoGKGYrENESYBZskTCY.SlDNBTeEC3ACe7Ue7IwdOGfOzM78Rvm';
//mencocokan kata mypassword dengan variabel $hashed yang didapatkan dari hasil hashing
if(password_verify('mypassword', $hashed)){
 echo "<br>Password cocok";
}else{
 echo "Password tidak cocok";
}

?>

Penjelasan kode :
  • $hashed merupakan variabel yang menampung nilai hasil enkripsi dari password_hash
  • Password_verify merupakan fungsi yang digunakan untuk mencocokan karakter asli dengan karakter yang sudah terhash
  • mypassword merupakan password yang kita buat

Contoh Implementasi password_hash dan password_verify
<?php
// Include config file
require_once 'config.php';
 
// Define variables and initialize with empty values
$username = $password = "";
$username_err = $password_err = "";
 
// Processing form data when form is submitted
if($_SERVER["REQUEST_METHOD"] == "POST"){
 
    // Check if username is empty
    if(empty(trim($_POST["username"]))){
        $username_err = 'Please enter username.';
    } else{
        $username = trim($_POST["username"]);
    }
    
    // Check if password is empty
    if(empty(trim($_POST['password']))){
        $password_err = 'Please enter your password.';
    } else{
        $password = trim($_POST['password']);
    }
    
    // Validate credentials
    if(empty($username_err) && empty($password_err)){
        // Prepare a select statement
        $sql = "SELECT username, password FROM users WHERE username = ?";
        
        if($stmt = mysqli_prepare($link, $sql)){
            // Bind variables to the prepared statement as parameters
            mysqli_stmt_bind_param($stmt, "s", $param_username);
            
            // Set parameters
            $param_username = $username;
            
            // Attempt to execute the prepared statement
            if(mysqli_stmt_execute($stmt)){
                // Store result
                mysqli_stmt_store_result($stmt);
                
                // Check if username exists, if yes then verify password
                if(mysqli_stmt_num_rows($stmt) == 1){                    
                    // Bind result variables
                    mysqli_stmt_bind_result($stmt, $username, $hashed_password);
                    if(mysqli_stmt_fetch($stmt)){
                        if(password_verify($password, $hashed_password)){
                            /* Password is correct, so start a new session and
                            save the username to the session */
                            session_start();
                            $_SESSION['username'] = $username;      
                            header("location: welcome.php");
                        } else{
                            // Display an error message if password is not valid
                            $password_err = 'The password you entered was not valid.';
                        }
                    }
                } else{
                    // Display an error message if username doesn't exist
                    $username_err = 'No account found with that username.';
                }
            } else{
                echo "Oops! Something went wrong. Please try again later.";
            }
        }
        
        // Close statement
        mysqli_stmt_close($stmt);
    }
    
    // Close connection
    mysqli_close($link);
}
?>
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
    <style type="text/css">
        body{ font: 14px sans-serif; }
        .wrapper{ width: 350px; padding: 20px; }
    </style>
</head>
<body>
    <div class="wrapper">
        <h2>Login</h2>
        <p>Please fill in your credentials to login.</p>
        <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
            <div class="form-group <?php echo (!empty($username_err)) ? 'has-error' : ''; ?>">
                <label>Username</label>
                <input type="text" name="username"class="form-control" value="<?php echo $username; ?>">
                <span class="help-block"><?php echo $username_err; ?></span>
            </div>    
            <div class="form-group <?php echo (!empty($password_err)) ? 'has-error' : ''; ?>">
                <label>Password</label>
                <input type="password" name="password" class="form-control">
                <span class="help-block"><?php echo $password_err; ?></span>
            </div>
            <div class="form-group">
                <input type="submit" class="btn btn-primary" value="Login">
            </div>
            <p>Don't have an account? <a href="register.php">Sign up now</a>.</p>
        </form>
    </div>    
</body>
</html>


Kesimpulan
Sangat disarankan sekali untuk menggunakan password_hash() karena fungsi tersebut dapat menghasilkan nilai hashig satu arah. Jadi misalnya sekalipun orang lain tahu nilai hash yang tersimpan pada database, tidak mungkin orang tersebut tahu nilai asli dari password yang tersimpan.

Jadi sebaiknya sekarang dalam membangun sebuah aplikasi berbasis web php, gunakan password_hash dan password_verify sebagai keamanan untuk loginnya.

Untuk mempermudah dalam proses belajar, saya sudah menyiapkan contoh imlementasi password_hash dan password_verify yang bisa Anda download dibawah ini


[ DOWLOAD ]

9 Responses to "Tutorial Menggunakan password_hash dan password_verify"

  1. Wah saya kurang begitu mengerti ya ,kirain pasword model email atau akun media sosial gitu.

    ReplyDelete
    Replies
    1. Cara lerjanya lebih ke pengaman akun aja mas sepertinya,..ea 😀

      Delete

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin

Virgobet88lotre4dBandar Lotre4DGama69RajajagoGama69GAMA69RajajagoRajaJagohttps://linkr.bio/gama69https://mez.ink/rajajagohokiToto Slot 4D Lotre4DRajajago Rajajago Lotre4D Onlinevirgobet88 daftarRajajago GameVirgobet88Slot Virgobet88Linkr Virgobet88Virgobet88strategi harian mahjong ways untuk menentukan waktu emas spin dengan akurasi tinggipanduan mahjong ways membaca pola spin dan keberuntungan berdasarkan ritme harianteknik pro mahjong ways mengelola spin beruntun agar peluang jackpot lebih besarhasil analisis mahjong ways terkait ritme dan tempo spin yang paling efektifrahasia mahjong ways menyesuaikan kecepatan spin untuk hasil stabil dan menguntungkanstrategi pemain berpengalaman menentukan ritme spin berdasarkan waktu hokipola spin harian yang sering digunakan pemain pro untuk meningkatkan peluangpanduan membaca perubahan tempo spin agar lebih konsisten dalam bermainhasil riset terbaru tentang ritme spin dan korelasi keberuntungan pemainteknik pro menentukan jadwal spin harian yang paling efektif untuk stabilitasstrategi harian pemain pro menentukan waktu spin berdasarkan perubahan keberuntunganpanduan membaca ritme dan tempo spin untuk meningkatkan peluang jackpotteknik pemain berpengalaman mengatur kecepatan spin dan menentukan jam hokihasil analisis spin harian berdasarkan pola ritme dan frekuensi kemenanganrahasia pemain pro dalam menentukan momen emas spin yang paling efektifvirgobet88 bagikan strategi spin terbaru dengan analisis waktu hoki yang terbuktitips efektif dari virgobet88 untuk membaca pola spin dan perubahan keberuntunganvirgobet88 ungkap rahasia spin harian berdasarkan data dan kebiasaan pemainpanduan virgobet88 menentukan ritme spin yang konsisten untuk hasil stabilstrategi hoki virgobet88 memanfaatkan waktu tepat spin dan kecepatan bermainstrategi harian pemain pro menentukan pola spin berdasarkan ritme dan keberuntunganpanduan efektif membaca waktu emas spin agar peluang kemenangan meningkathasil penelitian tentang ritme dan tempo spin yang mempengaruhi peluang jackpotrahasia pemain berpengalaman memanfaatkan perubahan tempo spin untuk hasil stabilteknik pro menentukan jam hoki spin dan pola beruntun yang paling efektifstrategi harian mahjong ways dalam memanfaatkan ritme spin dan perubahan keberuntunganpanduan mahjong ways menentukan waktu hoki spin agar peluang jackpot meningkatanalisis mahjong ways terkait tempo spin dan konsistensi kemenangan pemainrahasia pro mahjong ways dalam mengatur spin beruntun dan kecepatan hariantips efektif mahjong ways menyesuaikan ritme dan frekuensi spin untuk hasil optimalstrategi harian pemain pro memanfaatkan ritme dan frekuensi spin untuk meningkatkan bonuspola spin efektif yang digunakan pemain berpengalaman saat perubahan tempo hariananalisis waktu hoki dalam menentukan momen tepat spin agar keuntungan maksimalteknik berlapis spin harian untuk membangun pola beruntun dan peluang jackpotrahasia pemain berhasil mengatur kecepatan spin dan menang lebih konsistenpetimas88 ungkap strategi berlapis spin dan pola hoki untuk bonus lebih seringpetimas88 bagikan cara menentukan jam emas spin agar peluang kemenangan meningkatpetimas88 analisis pola spin harian yang sering memberi keuntungan besarteknik spin pro dari petimas88 dalam mengelola tempo dan frekuensi bermainpetimas88 tips mengatur ritme spin dan meningkatkan stabilitas kemenanganstrategi pemain pro membaca ritme dan waktu emas spin agar peluang bonus naik drastisanalisis ritme spin harian dan cara menentukan momen hoki untuk kemenangan stabilpanduan lengkap mengenali pola spin berirama yang sering munculkan bonus besarrahasia waktu hoki dalam spin harian yang sering digunakan pemain berpengalamantips membaca pola dan kecepatan spin agar tidak kehilangan peluang jackpotstrategi spin mahjong ways membaca perubahan tempo dan menang lebih konsistenpanduan mahjong ways menentukan jam emas spin dan meningkatkan hoki harianteknik pemain pro mahjong ways mengatur ritme spin untuk hasil lebih stabilanalisis mahjong ways terhadap pola spin berlapis yang bisa bikin peluang jackpot naikrahasia mahjong ways memanfaatkan perubahan tempo spin dalam mencapai maxwinmahasiswi kedokteran dapat rp1 5 juta dari trik spiral spin mahjong ways 3 jam subuhmodal rp20 ribu ibu warung di batam menang konsisten berkat spiral mahjong ways 2cuan rp1 juta dari scatter spiral mahjong ways 2 cerita ibu rumah tangga di serangfreelancer editor video cuan dari mahjong ways 3 berkat spiral kombinasi pagi harisupir travel di jogja main spin spiral jam 11 dan menang game mahjong ways 3penjaga kosan surabaya bongkar cara menang mahjong ways 3 tanpa ganti polasupir ojol jakarta barat cuan harian setelah coba tips bermain mahjong ways 3 jam 6pegawai minimarket bekasi pakai spin turbo manual mahjong ways 3 untuk dapat cuanspiral ganjil jam 9 di mahjong ways 3 bikin ibu laundry bekasi dapat rp1 1 jutamahasiswa teknik sipil cuan besar lewat pola spiral rahasia di mahjong ways 2mahasiswi farmasi di medan cuan karena turbo spiral random mahjong ways 2scatter ganjil genap di mahjong ways 2 ternyata cocok buat penjual roti di medanibu warung padang main mahjong ways 2 dan menang dari tips bermain spiral malammahasiswa ilkom di bali pakai mahjong ways 2 untuk dapat bonus lewat spin spiralibu penjual sayur palembang ungkap trik scatter spiral mahjong ways 2 jam subuhtips bermain mahjong ways 2 dari penjual soto pekalongan yang dapat rp950 ribupenjual sate lilit bali main spiral spin tanpa reset di mahjong ways 2 dan balik modalcara menang tanpa reset di mahjong ways 2 dibocorkan supir truk asal karawangpenjual tahu bulat di solo cuan lewat kombinasi scatter spiral mahjong ways 2penjual gorengan menang lewat pola ganjil genap mahjong ways 3 spiral manualpenjual martabak menang game setelah ikuti pola spin turbo mahjong ways 3 hari jumatibu kos di semarang bongkar tips bermain spiral turbo mahjong ways 3 manualsupir online bandung pakai scatter mahjong ways 3 jam 8 dan dapat rp1 2 jutapenjual jus buah menang game lewat spiral mahjong ways 3 jam 10 tanpa resettukang tambal ban dapat uang tambahan dari scatter turbo mahjong ways 2supir angkot cirebon menang game lewat scatter spiral mahjong ways 3 di jam 9mahasiswi hukum di malang menang game karena kombinasi turbo spiral mahjong ways 3buruh harian di tangerang dapat tambahan uang dari mahjong ways 2 spiral konsistenmahasiswi psikologi menang lewat trik bermain spiral pagi di mahjong ways 2mahasiswi biologi temukan pola spin turbo baru di game mahjong ways 3strategi spin harian memanfaatkan ritme dan waktu hoki untuk peluang bonus lebih besarrahasia pemain pro menentukan tempo spin yang sering munculkan kemenangan beruntunpanduan lengkap memilih waktu emas spin agar peluang menang naik drastisanalisis perubahan ritme spin dan pengaruhnya terhadap hasil kemenangan hariantrik pemain berpengalaman mengatur kecepatan spin demi hasil stabil dan menguntungkanstrategi mahjong ways mengatur tempo dan waktu spin untuk meningkatkan keberuntunganpanduan pro mahjong ways membaca pola dan kecepatan spin agar peluang jackpot lebih besaranalisis pola spin mahjong ways dalam menentukan momen emas untuk menang konsistenrahasia mahjong ways memanfaatkan ritme harian spin dan perubahan keberuntunganteknik efektif mahjong ways menyesuaikan kecepatan spin untuk mendapatkan maxwinpanduan membaca ritme dan frekuensi spin harian untuk meningkatkan peluang jackpotstrategi pemain pro menentukan tempo spin harian dan waktu hoki paling menguntungkananalisis ritme spin berdasarkan perubahan keberuntungan dan pola pergerakan hariantrik mengatur kecepatan spin demi kemenangan stabil dalam sesi bermain harianrahasia pemain berhasil menemukan pola spin harian yang sering memberi hasil positifvirgobet88 ungkap hasil analisis ritme spin harian yang berpengaruh pada peluang maxwinstrategi virgobet88 memanfaatkan frekuensi dan ritme spin untuk meningkatkan peluang kemenanganvirgobet88 bagikan teknik mengatur tempo spin dan waktu emas agar hasil lebih stabilhasil riset virgobet88 tentang perubahan ritme spin dan pengaruhnya terhadap keberuntunganpanduan virgobet88 menentukan ritme dan frekuensi spin optimal untuk hasil maksimalstrategi pemain pro membaca pola spin berdasarkan ritme dan waktu hariananalisis ritme spin dan frekuensi keberuntungan yang sering digunakan pemain ahlipanduan mengenali waktu emas spin dan momen hoki dalam setiap permainanrahasia pola spin harian yang mampu meningkatkan kesempatan jackpot besartips mengatur tempo dan kecepatan spin agar keberuntungan lebih stabilstrategi mahjong ways memanfaatkan ritme dan perubahan spin untuk peluang maksimalrahasia pemain pro mahjong ways menentukan waktu hoki dari pola ritme hariananalisis mahjong ways terkait pola dan frekuensi spin beruntun yang menguntungkanpanduan harian mahjong ways menyesuaikan tempo spin dengan perubahan keberuntungantips pro mahjong ways mengatur ritme spin dan membaca pola hoki setiap sesistrategi pemain pro membaca pola spin harian untuk memaksimalkan keberuntungananalisis ritme dan frekuensi spin yang sering dipakai pemain ahli untuk jackpotrahasia spin berirama dan pengaturan tempo yang efektif untuk hasil stabilpanduan harian memanfaatkan waktu emas spin dalam meningkatkan peluang menangtips pemain berpengalaman menentukan jam hoki dan tempo spin paling menguntungkanpetimas88 bagikan strategi spin harian dengan pola dan ritme beruntun yang terujiteknik petimas88 menentukan perubahan tempo spin untuk hasil lebih menguntungkanpetimas88 ungkap rahasia pola spin berirama yang sering berbuah kemenangan besarpanduan lengkap petimas88 membaca perubahan spin harian berdasarkan data keberuntunganpetimas88 strategi bermain dengan analisis ritme spin dan pola keberuntungan terbaruanalisis pola ritme spin malam hari yang sering dipakai pemain untuk menang besarstrategi pemain pro memanfaatkan jam hoki malam untuk peluang jackpot lebih tinggistudi terbaru tentang pengaruh tempo spin malam terhadap tingkat kemenanganpanduan harian mengenali waktu emas spin pada malam hari agar lebih menguntungkanrahasia pemain berpengalaman mengelola spin malam dengan pola beruntun efektifstrategi spin mahjong ways di malam hari yang sering menghasilkan keberuntungan besarpanduan membaca pola mahjong ways malam hari untuk meningkatkan peluang jphasil observasi pemain pro terhadap ritme spin mahjong ways di jam hokianalisis waktu terbaik spin mahjong ways malam hari berdasarkan data pemain berhasilrahasia pola mahjong ways malam hari yang sering memicu kemenangan beruntun
analisis perbandingan pgsoft vs pragmatic fiturnya dan strategi menangbonus dan bonus rules pada game pgsoft dan pragmatic play panduan lengkapevaluasi grafis dan audio pgsoft vs pragmatic perbandingan dalam praktikdatabase game pgsoft dan pragmatic slot terbaik dengan rank dan ulasanfitur fitur unik pgsoft dan pragmatic cara manfaatkan untuk kemenanganguide mobile optimasi pengalaman pgsoft dan pragmatic di android iosinsight developer dari pgsoft dan pragmatic pendekatan ke desain gamejackpot strategi pgsoft dan pragmatic cara mengejar progresif dengan amankatalog fitur bonus freemium pgsoft dan pragmatic penjelasan terperincikomparatif performa pgsoft dan pragmatic analisis kecepatan dan stabilitasbocoran hari ini pahami pola ini biar ga kalah lagicara menang dengan pola hari ini yang lagi viral di komunitaspahami pola ini dan cara baru kuasai rtp dengan teknik rahasiapola hari ini cara baru kuasai rtp yang bikin banyak orang heran karena efektifpola menang terbaru ternyata ini caranya biar bisa menang tiap hariternyata ini caranya kuasai rtp dengan trik sederhana yang jarang dipakaiternyata ini caranya rahasia pahami pola menang yang belum banyak dibocorkantrik menang hari ini bocoran rahasia yang bikin netizen hebohbocoran hari ini trik menang yang baru ditemukan bikin pemain auto cuanbocoran orang pusat paling ampuh trik pola rtp agar kemenangan meledakbocoran orang pusat cara rahasia menang mudah dengan strategi pola rtpbocoran orang pusat cara rahasia agar pola rtp jadi kunci kemenangan meledakbocoran orang pusat berikan trik strategi pola rtp agar kemenangan meledakbocoran orang pusat rahasia agar kemenangan meledak dengan pola rtpbocoran orang pusat ungkap trik pola rtp agar kemenangan meledak instanbocoran orang pusat ungkap rahasia pola rtp agar kemenangan meledak lebih mudahbocoran orang pusat ungkap cara rahasia trik dan strategi pola rtpbocoran orang pusat ungkap cara rahasia menang mudah dengan trik pola rtpbocoran orang pusat strategi terbukti agar pola rtp jadi kunci menangmahjong ways panduan magang dan perkerjaan di indonesai yang populer cara mendapatkan internshipmahjong ways panduan pengembangan diri dan perkerjaan di indonesai yang populer 2025mahjong ways panduan pengembangan produk dan perkerjaan di indonesai yang populer tahapanmahjong ways panduan portfolio dan perkerjaan di indonesai yang populer contoh website pribadimahjong ways panduan praktis dan perkerjaan di indonesai yang populer cara membangun jaringanmahjong ways panduan proyek portfolio dan perkerjaan di indonesai yang populer contoh nyatamahjong ways panduan sertifikasi dan perkerjaan di indonesai yang populer sertifikat bernilaimahjong ways panduan startup dan perkerjaan di indonesai yang populer ruang kerja dan kulturmahjong ways pelatihan gratis dan perkerjaan di indonesai yang populer sumber belajar onlinemahjong ways peluang kerja di bidang pendidikan dan perkerjaan di indonesai yang populer kualifikasianalisis psikologis mahjong ways cenderung memberi pola ringan setelah kekalahaneksperimen unik pemain temukan pola mahjong ways saat menggunakan headset khususfakta menarik mahjong ways respon gerakan mouse pemain dengan perubahan pola visualmahjong ways 2025 pola adaptasi otomatis yang muncul berdasarkan kebiasaan klikmahjong ways 2025 pola fokus yang meningkatkan rtp saat pemain tanpa gangguanmahjong ways hari ini pola emosional yang terbentuk saat pemain kehilangan fokusmahjong ways hari ini pola interaksi cahaya dan suara yang mempengaruhi keputusanmahjong ways hari ini pola ritme klik yang membuat peluang menang naik 30 persenrahasia mahjong ways pola stimulasi visual yang dirancang untuk membuat pemain lebih lamariset terbaru 2025 mahjong ways menunjukkan respons berbeda saat pemain tanpa suaracara baru mudah menang tanpa modal besar bikin banyak orang penasarananalisis ai 2025 mahjong ways gunakan deep learning untuk memprediksi klikfakta menarik mahjong ways gunakan sensor psikologis untuk menentukan momentummahjong ways 2025 pola kecerdasan buatan membaca kebiasaan klik pemainmahjong ways hari ini pola ai tersembunyi yang mampu mengenali emosi pemainmahjong ways hari ini pola neural hidden layer yang mengatur urutan simbolmahjong ways hari ini pola respons ai berubah setelah pemain klik agresifmahjong ways hari ini pola simulasi perasaan pemain berdampak pada frekuensi scatterpenelitian lanjutan mahjong ways gunakan model ai reaktif untuk menyeimbangkanriset rahasia 2025 mahjong ways menyesuaikan rtp berdasarkan tekanan emosionalteori baru mahjong ways gunakan ai emosional untuk mengatur tingkat kesulitanlembar kerja cara baru mudah menang dengan target micro stakerancangan keras ternyata ini cara mainnya kala trend naiktoolkit cara baru mudah menang dengan parameter amankompas mental pahami pola rtp ini untuk hindari tilt parahroadmap cara baru mudah menang dengan pola bertahap dinamisnarasi lengkap ternyata ini cara mainnya ketika saldo fluktuatifquarterly review pola menang berdasarkan arsip sesi 90 harimetode esensial cara menang berbasis data bukan perasaanobservasi mendalam pola menang saat tren simbol wild lebih aktifpeta perang ternyata ini cara mainnya menghadapi drawdown