ahmadajah03 Sat Dec 2020 2 years ago

Bagaimana cara mengenkripsi dan mendekripsi string di Laravel?

Laravel, di sisi lain, menyediakan enkripsi out-of-the-box, yang menggunakan OpenSSL untuk menyediakan enkripsi AES-256 sehingga Anda tidak benar-benar harus membuat teknik enkripsi sendiri.

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

Install laravel

Langkah pertama Anda install dulu aplikasi laravel terbaru menggunakan composer.

composer create-project laravel/laravel example-app

cd example-app

php artisan serve

Konfigurasi Kunci Aplikasi

Sebelum Anda memulai, Anda perlu memastikan bahwa Anda telah membuat Kunci Aplikasi.

Jika Anda belum memiliki kunci yang dibuat, untuk melakukannya, Anda 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 Kunci Aplikasi kita siap, mari lanjutkan dan buat dua route, satu untuk menguji enkripsi Laravel dan satu lagi untuk menguji dekripsi Laravel.

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

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

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

Rute pertama adalah /encrypt route, yang akan menghasilkan string terenkripsi untuk kita, dan yang kedua akan mendekripsi string itu.

Dengan itu, mari buat controller EncryptionController !

Membuat Controller

Untuk contoh ini, mari buat controller 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 Anda dan pertama tambahkan Crypt facade:

use Illuminate\Support\Facades\Crypt;

Kemudian mari kita buat dua metode publik baru: satu untuk mengenkripsi string dan satu lagi untuk mendekripsi string yang sama bernama encrypt dan decrypt.

Ecryption method

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 kami mengenkripsi Hello DevDojostring sederhana
  • print_r($encrypted); : akhirnya, kami akan mencetak string terenkripsi di layar.

Setelah kunjungan itu, /encrypt URL melalui browser Anda dan Anda akan melihat string terenkripsi yang mirip dengan ini:

string(188) "eyJpdiI6ImxSdGhkeVg2VHlCNUs0citKT0V4NHc9PSIsInZhbHVlIjoiSEM5V0pVWURySnVabGlnenNwTDgzUT09IiwibWFjIjoiZTJlYWVhYmI2OTJmZWJkZWVhOTg3Nzc1ZTQwNDBlNmI3ODIzZTY5YTgwZGM3N2YwYTRmYTEwYmJiYmNjZmE2NiJ9"

Catat string ini dan kembali ke editor teks Anda untuk menyiapkan decrypt metode!

 

Decryption method

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 Anda dapatkan dari langkah terakhir

Mirip dengan metode Enkripsi, kami kembali menggunakan metode Crypt dihadapkan dengan decryptString statis untuk mendekripsi string!

Kemudian kali ini mengunjungi /decrypt URL di browser Anda, dan Anda akan melihat Hello DevDojo pesan yang didekripsi !

Tentu saja, contoh di atas hanya menunjukkan Crypt fungsionalitas. Dalam skenario kehidupan nyata, Anda kemungkinan besar akan mendapatkan string Anda 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!

laravel encrypt and decrypt a string in Laravel