Bagaimana cara mengenkripsi dan mendekripsi string di Laravel?

date 30 Mar 2021
date Lev Yasin
date 33
date Web Programming
Bagaimana cara mengenkripsi dan mendekripsi string di Laravel?

Enkripsi adalah proses penyandian informasi sehingga tidak dapat dipahami atau disadap. Enkripsi telah digunakan sejak lama sebelum komputer ditemukan; sebenarnya, bukti pertama yang diketahui berasal dari tahun 1900 SM di Mesir.

Laravel, di sisi lain, menyediakan enkripsi out-of-the-box, yang menggunakan OpenSSL untuk menyediakan enkripsi AES-256 sehingga Kita tidak perlu menggunakan teknik enkripsi Kita sendiri.

Dalam tutorial ini, Kita akan belajar bagaimana menggunakan enkripsi Laravel untuk mengenkripsi teks!

Konfigurasi Key Aplikasi

Sebelum Kita memulai, Kita perlu memastikan bahwa Kita telah membuat App Key.

Jika Kita belum memiliki kunci yang dibuat, untuk melakukannya, Kita dapat menjalankan perintah berikut:

php artisan key:generate

Enkripsi Laravel akan tetap berfungsi tanpa kunci, tetapi nilai yang dienkripsi mungkin tidak aman.

Membuat Route

Sekarang setelah App Key kita siap, mari lanjutkan dan buat dua route, satu untuk menguji enkripsi Laravel dan satu lagi untuk menguji dekripsi Laravel.

Untuk melakukan itu, buka routes/web.php dan tambahkan baris berikut ini:

Route::get('encrypt', EncryptionController@encrypt');

Route::get('decrypt', EncryptionController@decrypt');

Route pertama adalah /encryptroute, yang akan menghasilkan string terenkripsi untuk kita, dan yang kedua akan mendekripsi string itu.

Dengan itu, mari buat EncryptionController

Membuat Controller

Untuk contoh ini, mari buat pengontrol baru bernama EncryptionController:

php artisan make:controller EncryptionController

Ini akan membuat controller baru di: app/Http/Controllers/EncryptionController.php.

Selanjutnya, buka file itu di editor teks Kita dan tambahkan Cryptfasad terlebih dahulu :

use Illuminate\Support\Facades\Crypt;

Kemudian mari buat dua metode publik baru: satu untuk mengenkripsi string dan satu lagi untuk mendekripsi string yang sama yang disebut encryptdan decrypt.

Metode enkripsi

Mari kita mulai dengan metode Enkripsi sederhana yang akan mengenkripsi string hardcode untuk kita:

   public function encrypt()
   {
        $encrypted = Crypt::encryptString('Hello DevDojo');
        print_r($encrypted);
   }

Rundown metode:

  • public function encrypt() : pertama kita tentukan metodenya
  • Crypt::encryptString('Hello DevDojo'): kemudian menggunakan Crypt::encryptString()metode statis kita mengenkripsi Hello DevDojostring sederhana
  • print_r($encrypted); : akhirnya, kita akan mencetak string terenkripsi di layar.

Setelah kunjungan itu, /encryptURL melalui browser dan Kita akan melihat string terenkripsi yang mirip dengan ini:

string(188) "eyJpdiI6ImxSdGhkeVg2VHlCNUs0citKT0V4NHc9PSIsInZhbHVlIjoiSEM5V0pVWURySnVabGlnenNwTDgzUT09IiwibWFjIjoiZTJlYWVhYmI2OTJmZWJkZWVhOTg3Nzc1ZTQwNDBlNmI3ODIzZTY5YTgwZGM3N2YwYTRmYTEwYmJiYmNjZmE2NiJ9"

Catat string ini dan kembali ke editor teks Kita untuk menyiapkan decryptmetode!

Metode dekripsi

Kemudian buat metode publik baru bernama decrypt:

    public function decrypt()
    {
         $decrypt= Crypt::decryptString('your_encrypted_string_here');
         print_r($decrypt);
    }

Catatan :

Pastikan untuk mengubah your_encrypted_string_here dengan string yang dikodekan sebenarnya yang Kita dapatkan dari langkah terakhir

Mirip dengan metode Enkripsi, kita kembali menggunakan metode Cryptdihadapkan dengan decryptStringstatis untuk mendekripsi string!

Kemudian kali ini mengunjungi /decryptURL di browser Kita, dan Kita akan melihat Hello DevDojopesan yang didekripsi !

Tentu saja, contoh di atas hanya menunjukkan Cryptfungsionalitas. Dalam skenario kehidupan nyata, Kita kemungkinan besar akan mendapatkan string Kita dari permintaan POST atau panggilan API misalnya.

Kesimpulan

Untuk informasi lebih lanjut tentang cara menggunakan Enkripsi Laravel, pastikan untuk memeriksa dokumentasi resmi di sini:

https://laravel.com/docs/8.x/encryption

Saya harap ini membantu!

lev_yasin.png

Lev Yasin

Instruktur Web Programming Mataweb

Sangat tertarik dengan dunia Pemrograman Web & Mobile, saat ini fokus pada bagian Backend Web Developer, menggunakan PHP sebagai bahasa pemrograman utama, biasanya saya menggunakan Laravel.

Artikel Terkait

Halo, ada yang bisa kami bantu?