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 /encrypt
route, 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 Crypt
fasad 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 encrypt
dan 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 DevDojo
string sederhana
print_r($encrypted);
: akhirnya, kita akan mencetak string terenkripsi di layar.
Setelah kunjungan itu, /encrypt
URL 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 decrypt
metode!
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 Crypt
dihadapkan dengan decryptString
statis untuk mendekripsi string!
Kemudian kali ini mengunjungi /decrypt
URL di browser Kita, dan Kita akan melihat Hello DevDojo
pesan yang didekripsi !
Tentu saja, contoh di atas hanya menunjukkan Crypt
fungsionalitas. 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
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.