{"id":60634,"date":"2026-01-12T08:22:00","date_gmt":"2026-01-12T01:22:00","guid":{"rendered":"https:\/\/www.rumahweb.com\/journal\/?p=60634"},"modified":"2026-02-13T17:17:09","modified_gmt":"2026-02-13T10:17:09","slug":"membuat-encrypt-dan-decrypt-data-di-laravel","status":"publish","type":"post","link":"https:\/\/www.rumahweb.com\/journal\/membuat-encrypt-dan-decrypt-data-di-laravel\/","title":{"rendered":"Membuat Encrypt dan Decrypt Data di Laravel"},"content":{"rendered":"\n<p>Keamanan data merupakan aspek penting dalam pengembangan aplikasi modern, terutama saat menangani informasi sensitif seperti <em>password<\/em>, token, atau data pengguna. Laravel sebagai <em>framework <\/em><a href=\"https:\/\/blog.rumahweb.com\/php-adalah\/\" target=\"_blank\" rel=\"noopener\" title=\"php adalah\">PHP<\/a> populer telah menyediakan fitur bawaan yang memudahkan proses <em>encrypt <\/em>dan <em>decrypt <\/em>data di Laravel tanpa perlu konfigurasi yang rumit. <\/p>\n\n\n\n<p>Namun, masih banyak developer yang belum memanfaatkan fitur ini secara optimal. Melalui artikel ini, Anda akan mempelajari cara melakukan <em>encrypt <\/em>dan <em>decrypt <\/em>data di Laravel secara aman, praktis, dan sesuai <em>best practice<\/em>, sehingga aplikasi yang Anda bangun lebih terlindungi dan profesional.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Apa Itu Encrypt dan Decrypt Data di Laravel<\/h2>\n\n\n\n<p>Encrypt dan decrypt adalah proses pengamanan data dengan cara mengubah data asli (<em>plaintext<\/em>) menjadi bentuk terenkripsi (<em>ciphertext<\/em>), lalu mengembalikannya kembali ke bentuk semula. Di Laravel, proses ini sudah tersedia secara bawaan. <\/p>\n\n\n\n<p>Laravel menggunakan algoritma enkripsi AES (<em>Advanced Encryption Standard<\/em>) yang dikonfigurasi melalui APP_KEY pada file .env, sehingga pengembang tidak perlu membuat sistem enkripsi sendiri yang berisiko tidak aman.<\/p>\n\n\n\n<p>Enkripsi data sangat penting untuk melindungi informasi sensitif pengguna, seperti kata sandi, nomor identitas, dan token rahasia. Dengan enkripsi, risiko kebocoran data dapat diminimalkan meskipun database diakses oleh pihak yang tidak berwenang, sekaligus meningkatkan kepercayaan pengguna terhadap aplikasi.<\/p>\n\n\n\n<p>Laravel menyediakan <em>helper <\/em>dan <em>facade Crypt <\/em>untuk melakukan enkripsi dan dekripsi data. Alurnya sederhana: data dienkripsi menggunakan <code>APP_KEY<\/code>, disimpan ke database dalam bentuk acak, lalu didekripsi kembali ke bentuk aslinya saat diperlukan.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Implementeasi encrpyt data sebelum disimpan ke Database<\/h2>\n\n\n\n<p>Pada aplikasi laravel, proses <em>encrypt <\/em>dapat dilakukan sebelum data di simpan kedalam database, agar data tidak dapat dibaca secara langsung oleh pihak tidak berwenang, Laravel, telah menyediakan <em>facade <\/em>bawaan yang bernama Crypt yang mudah digunakan.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Membuat model dan migration data<\/h3>\n\n\n\n<p>Pada step ini kita akan menjalankan proses enkripsi data sebelumnya di simpan ke dalam database, kita mulai dari membuat model dan migration datanya terlebih dahulu. Untuk membuat model dan migration datanya silahkan dapat menjalankan perintah <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em>php artisan make:model DataRahasia -m<\/em><\/code><\/pre>\n\n\n\n<p>Kemudian pada file migration silahkan dapat dirubah seperti berikut pada baris Schema:create<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Schema::create('data_rahasia', function (Blueprint $table) {\n    $table-&gt;id();\n    $table-&gt;text('informasi_rahasia');\n    $table-&gt;timestamps();\n});<\/code><\/pre>\n\n\n\n<p>Setelah edit file migrationnya silahkan dapat menjalankan <em>php artisan migrate <\/em>untuk mengirim table ke database kita. <\/p>\n\n\n\n<p>Sekarang kita akan melakukan konfigurasi model silahkan buka file app\/Models\/DataRahasia.php. Kemudian rubah menjadi berikut pada baris Class DataRahasia.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class DataRahasia extends Model\n{\n    protected $table = 'data_rahasias';\n\n    protected $fillable = &#91;\n        'informasi_rahasia'\n    ];\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Membuat Controller<\/h3>\n\n\n\n<p>Buat controller untuk menampilkan view Create data, simpan data dengan enkripsi, dan view data deksripsi.<\/p>\n\n\n\n<p>Silahkan dapat menjalankan perintah berikut untuk membuat controllernya<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><em>php artisan make:controller DataRahasiaController<\/em><\/code><\/pre>\n\n\n\n<p>Kemudian mari kita isikan contoller dengan logic encrypt, decrypt serta view page untuk create datanya. Seperti berikut<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>use App\\Models\\DataRahasia;\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Support\\Facades\\Crypt;\n\nclass DataRahasiaController extends Controller\n{\n    public function create()\n    {\n        return view('data.create');\n    }\n\n    public function store(Request $request)\n    {\n        $request-&gt;validate(&#91;\n            'informasi_rahasia' =&gt; 'required'\n        ]);\n\n        $dataTerenkripsi = Crypt::encryptString(\n            $request-&gt;informasi_rahasia\n        );\n\n        DataRahasia::create(&#91;\n            'informasi_rahasia' =&gt; $dataTerenkripsi\n        ]);\n\n        return redirect()-&gt;back()-&gt;with('success', 'Data berhasil disimpan');\n    }\n}<\/code><\/pre>\n\n\n\n<p>Pada tahap ini, data sudah terenkripsi sebelum masuk database, sehingga tidak bisa dibaca langsung.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Membuat Route<\/h3>\n\n\n\n<p>Tambahkan route di routes\/web.php:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Route::get('\/data\/create', &#91;DataRahasiaController::class, 'create']);\nRoute::post('\/data\/store', &#91;DataRahasiaController::class, 'store']);<\/code><\/pre>\n\n\n\n<p>Jangan lupa menambahkan use App\\Http\\Controllers\\DataRahasiaController; diatas sendiri.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Membuat view form input<\/h3>\n\n\n\n<p>Buat file blade di folder resources\/views\/data\/create.blade.php:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;form method=\"POST\" action=\"\/data\/store\"&gt;\n    @csrf\n    &lt;label&gt;Informasi Rahasia&lt;\/label&gt;\n    &lt;input type=\"text\" name=\"informasi_rahasia\"&gt;\n    &lt;button type=\"submit\"&gt;Simpan&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Contoh implementasi Decrypt Data Saat Ditampilkan ke <em>User<\/em><\/h2>\n\n\n\n<p>Setelah data terenkripsi disimpan, langkah selanjutnya adalah menampilkan data kembali dalam bentuk asli.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Menambahkan Method index pada Controller<\/h3>\n\n\n\n<p>Tambahkan method berikut di DataRahasiaController:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public function index()\n{\n    $data = DataRahasia::all();\n\n    foreach ($data as $item) {\n        $item-&gt;informasi_rahasia = Crypt::decryptString(\n            $item-&gt;informasi_rahasia\n        );\n    }\n\n    return view('data.index', compact('data'));\n}<\/code><\/pre>\n\n\n\n<p>Pada proses ini data diambil dari database kemudian data didekripsi satu per satu, kemudian data siap ditampilkan ke <em>user.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Menambahkan Route untuk Menampilkan Data<\/h3>\n\n\n\n<p>Silahkan tambahkan route berikut di routes\/web.php<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Route::get('\/data', &#91;DataRahasiaController::class, 'index']);<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Membuat View untuk Menampilkan Data<\/h3>\n\n\n\n<p>Buat file blade di folder resources\/views\/data\/index.blade.php:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;table border=\"1\"&gt;\n    &lt;tr&gt;\n        &lt;th&gt;Informasi Rahasia&lt;\/th&gt;\n    &lt;\/tr&gt;\n    @foreach ($data as $item)\n    &lt;tr&gt;\n        &lt;td&gt;{{ $item-&gt;informasi_rahasia }}&lt;\/td&gt;\n    &lt;\/tr&gt;\n    @endforeach\n&lt;\/table&gt;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Testing<\/h2>\n\n\n\n<p>Berdasarkan hasil pengujian yang telah dilakukan ketika akses url 127.0.0.1\/data\/create untuk memasukan data, data yang disimpan ke dalam database berhasil terenkripsi dengan baik sehingga tidak dapat dibaca secara langsung. Data yang tersimpan tampil dalam bentuk teks acak, menandakan bahwa proses encrypt telah berjalan sesuai dengan yang diharapkan.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.51.49-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"271\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.51.49-2-1024x271.png\" alt=\"Create data - Encrypt dan Decrypt Data di Laravel\" class=\"wp-image-60643\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.51.49-2-1024x271.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.51.49-2-300x79.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.51.49-2-768x203.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.51.49-2-1536x406.png 1536w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.51.49-2-370x98.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.51.49-2-270x71.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.51.49-2-570x151.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.51.49-2-740x196.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.51.49-2.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.50.56.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"346\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.50.56-1024x346.jpg\" alt=\"Data terenkripsi\" class=\"wp-image-60647\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.50.56-1024x346.jpg 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.50.56-300x101.jpg 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.50.56-768x260.jpg 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.50.56-1536x519.jpg 1536w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.50.56-370x125.jpg 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.50.56-270x91.jpg 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.50.56-570x193.jpg 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.50.56-740x250.jpg 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.50.56.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Selanjutnya, pada saat data dipanggil dan ditampilkan melalui aplikasi, sistem berhasil melakukan proses decrypt secara otomatis. Data yang sebelumnya tersimpan dalam bentuk terenkripsi dapat ditampilkan kembali dalam bentuk aslinya tanpa mengalami perubahan isi. Hal ini menunjukkan bahwa mekanisme encrypt dan decrypt yang diimplementasikan pada Laravel telah berfungsi dengan benar dan konsisten.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.52.35.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"230\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.52.35-1024x230.jpg\" alt=\"Data Terdekripsi\" class=\"wp-image-60646\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.52.35-1024x230.jpg 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.52.35-300x67.jpg 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.52.35-768x172.jpg 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.52.35-1536x345.jpg 1536w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.52.35-370x83.jpg 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.52.35-270x61.jpg 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.52.35-570x128.jpg 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.52.35-740x166.jpg 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/01\/Screenshot-2026-01-06-at-11.52.35.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Kesimpulan<\/h2>\n\n\n\n<p>Berdasarkan pembahasan dan pengujian yang dilakukan, penerapan <em>encrypt <\/em>dan <em>decrypt <\/em> data pada Laravel terbukti efektif dalam meningkatkan keamanan aplikasi. Dengan fitur enkripsi bawaan Laravel, data sensitif dapat disimpan dalam bentuk terenkripsi sehingga tidak dapat dibaca langsung melalui database.<\/p>\n\n\n\n<p>Proses enkripsi saat penyimpanan dan dekripsi saat penampilan data berjalan dengan baik tanpa mengganggu alur kerja aplikasi serta tetap menjaga keutuhan data. Oleh karena itu, mekanisme enkripsi sangat direkomendasikan untuk aplikasi Laravel yang mengelola data rahasia guna mengurangi risiko kebocoran dan meningkatkan kepercayaan pengguna.<\/p>\n\n\n\n<p>Demikian artikel kami tentang cara membuat <em>encrypt <\/em>dan <em>decrypt <\/em>data di Laravel, semoga bermanfaat.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Keamanan data merupakan aspek penting dalam pengembangan aplikasi modern, terutama saat menangani informasi sensitif seperti password, token, atau data pengguna. Laravel sebagai framework PHP populer telah menyediakan fitur bawaan yang memudahkan proses encrypt dan decrypt data di Laravel tanpa perlu konfigurasi yang rumit. Namun, masih banyak developer yang belum memanfaatkan fitur ini secara optimal. Melalui [&hellip;]<\/p>\n","protected":false},"author":357,"featured_media":60682,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[2574,2320,796],"class_list":{"0":"post-60634","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-web-programming","8":"tag-decrypt","9":"tag-encrypt","10":"tag-laravel"},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/60634","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/users\/357"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/comments?post=60634"}],"version-history":[{"count":0,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/60634\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media\/60682"}],"wp:attachment":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media?parent=60634"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/categories?post=60634"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/tags?post=60634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}