Tutorial Laravel #20 : Hashing Pada Laravel

Hashing mengubah sepotong data (kecil atau besar), menjadi potongan data yang relatif singkat seperti string atau integer.

Hash adalah kode alfanumerik dengan panjang tetap yang digunakan untuk mewakili kata, pesan, atau data. Hash adalah sidik jari atau rangkuman dari data digital. Perbedaan antara hash dan enkripsi adalah hash merupakan kriptografi satu arah, sementara enkripsi berjalan dua arah. Hash pada dasarnya mempunyai dua karakteristik :

  • input yang sama akan selalu menghasilkan output yang sama
  • tidak ada fungsi atau cara untuk membalikkan output kembali menjadi input.

Hashing adalah proses menghasilkan fixed-size output, dari variable-sized input yang dilakukan melalui penggunaan rumus matematika yang dikenal sebagai hash function. Setiap aset kripto menggunakan berbagai algoritma hashing yang berbeda untuk membuat berbagai jenis kode hash – algoritma ini bertugas untuk menghasilkan alfanumerik acak.

Hashing Pada Laravel

Ada 2 hasing yang sudah ada pada laravel, yaitu Bcrypt dan Argon2. Jika kita menggunakan sistem login atau authentication default bawaan dari laravel, laravel menggunakan Bcrypt untuk merahasiakan data password user.

Silahkan teman-teman lihat kembali pada tutorial membuat login dan register laravel yang sudah kita bahas pada tutorial sebelumnya, tentu di sana laravel sudah menerapkan enkripsi hash pada bagian password user dan laravel menggunakan Bcrypt secara default.

Untuk pengaturan hash pada laravel, kita bisa mengubahnya pada file config/hashing.php. Mungkin kita tidak ingin menggunakan hash default laravel yaitu Bcrypt, kita bisa mengubahnya pada folder config dan file hashing.php.

Penggunaan Hashing Pada Laravel

Cara membuat hash untuk password, kita bisa menggunakan atau memanggil Facade Hash terlebih dulu, baru kemudian kita bisa menggunakan method make() untuk membuat hash-nya.

Baca Juga  Tutorial PHP : #14 Foreach pada PHP

Contoh sederhananya, misalnya kita ingin membuat atau meng-generate data password ke dalam bentuk hash menggunakan laravel.

Silahkan buat sebuah controller pada cmd/terninal dengan perintah :

php artisan make:controller HashController

Di sini saya menggunakan controller dengan nama HashController.php dan buat route baru pada file app/routes/web.php untuk mengakses method pada HashController.php.

Route::get('/hash', 'HashController@hash');

Pada saat route ‘/hash’ diakses, maka kita akan menjalankan method hash() dari controller HashController.php, maka sekarang kita buat method baru dengan nama hash() dalam controller HashController.php.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;

class HashController extends Controller
{
    public function hash()
    {
        $hash_pada_password = Hash::make('halo123'); 
        echo $hash_pada_password;
    }
}

Setiap kali kita ingin membuat hash pada laravel ini, kita harus memanggil facade Hash, agar kita bisa membuat hash dengan laravel, seperti pada contoh di atas.

use Illuminate\Support\Facades\Hash;

Pada contoh di atas, kita mencoba meng-generate password dari string “halo123”, kemudian kita tampilkan hasilnya.

Sekarang jalankan project laravel kita dan akses route localhost:8000/hash, maka hasilnya seperti berikut :

Hash tersebut akan terus berubah setiap kali direload.

Membuat Verifikasi Hash Pasword

Ada saat nya kita ingin membuat login sendiri tanpa menggunakan fitur Auth dari laravel, nah kita bisa menggunakan cara ini untuk memverifikasi data password yang dimasukkan oleh pengguna dengan data password yang ada pada database kita.

Cara ini bisa kita gunkana untuk membuat login manual dengan laravel, kita bisa menggunakan method check(), diisi dengan password yang dimasukkan user pada parameter pertama dan data password yang ada pada database (atau password yang sudah di hash sebelumnya) pada parameter kedua.

if (Hash::check('password_yang_dimasukkan', $password_dari_db)) 
{
    // Jika password benar
}
else
{
    // jika password tidak sesuai
}

 

Baca Juga  Tutorial Node.js #6 : Menggunakan Modul URL untuk Membuat Webserver Statis

Jika ingin membaca panduan Hashing dari dokumentasi laravel, kita bisa membacanya pada link di sini.

Demikian tutorial Hashing pada laravel, semoga bermanfaat. Jika ada pertanyaan silahkan tulis di kolom komentar.

Related Post

Be the first to comment

Leave a Reply

Your email address will not be published.


*


error: Ga bisa dicopy