Membuat CRUD (Create, Read, Update, Delete) Enkripsi & Deskripsi pada PHP & Ajax

Hello guys ketemu lagi dengan saya dewan komputer, setelah lama saya tidak update blog ini karena banyak kerjaan baik yg part time maupun freelance akhirnya saya sempatkan untuk update lagi daripada hosting yang sudah saya beli ini tidak terpakai heheh.

Pada kesempatan kali ini saya akan membahas lagi tentang CRUD. Ya ini merupakan hal yang paling standar dalam belajar pemrograman. Tapi karena saya sudah membahas banyak tentang CRUD jadi kali ini saya akan sedikit naik tingkat lagi karena apa, karena saya akan membahas CRUD yang menyimpan datanya terenkripsi ke dalam database MySQL/MariaDB. Setelah sebelumnya saya juga pernah membahas seperti ini tapi menggunakan base64 encode. Tentunya saya membuat standar saja ya, sobat bisa sesuaikan sesuai kebutuhan. Cara kerjanya gampang, pengguna input seperti biasa namun saat akan disimpan kita enkripsi terlebih dahulu dan enkripsi pada kali ini yang saya gunakan adalah metode “AES-256-CBC” karena enkripsi tersebut bisa juga untuk di deskripsi tentunya menggunakan key ya jadi sobat bisa membuat keynya dinamis mengikuti setiap user/pengguna atau statis yang mana sudah di deklarasikan dan bisa dipanggil berkali-kali.Untuk key juga buatlah yang susah dan panjang dan tidak perlu bisa di hafalkan agar tidak ada orang yang bisa mengira-ngira sehingga data yang ada di database ini hanya bisa tampil dengan benar hanya di aplikasi yang kita buat ini.

Baca Juga :

CRUD Enkripsi / Deskripsi dengan Base64 pada PHP

 

Membuat Database MySQL

1. Pertama yang WAJIB ada yaitu sobat harus membuat sebuah database. Sobat bisa menggunakan tools bantu seperti navicat, heidi SQL atau lainnya. Sobat juga bisa membuatnya dengan mengakses url localhost/phpmyadmin -> klik tab Database dan tuliskan db_dewankomputer-> Klik tombol Create/Buat.

2. Buat tabel untuk mengetes nantinya apakah benar-benar terkoneksi atau belum dengan mengetikkan query dibawah ini pada tab SQL lalu klik tombol Kirim/Go

Pada tanggal masuk kita tidak membuatnya menjadi format date karena kita juga akan membuatnya terenkripsi. Jika sobat ingin menampilkan dengan tipe date agar bisa di sort berdasarkan tanggal tertua dan termuda maka sobat tidak perlu mengenkripsi kolom tanggal.

 

3. Isikan data pada tbl_mahasiswa_enkripsi dengan mengetikkan query dibawah ini

 

Membuat CRUD Enkripsi & Deskripsi AES-256-CBC

1. Langsung saja tidak usah berlama-lama, caranya seperti biasa sobat perlu membuat file koneksi.php terlebih dahulu.

isikan sesuai dengan host, user, password, dan nama database sobat. Untuk contoh di bawah ini saya berinama database dengan nama db_dewankomputer.

Jika sobat ingin tahu cara mengkoneksikan dengan dua database atau lebih dalam satu aplikasi maka sobat bisa kunjungi postingan dibawah ini

Cara Membuat Koneksi dengan Database MySQL bisa Dua atau Lebih Koneksi database/Multiple Connection dalam Satu Host maupun beda Host Menggunakan PHP – Part 3

Untuk csrf_token bisa sobat masukkan ke dalam file ini atau sobat juga bisa membuat file baru contohnya auth.php untuk membuat CSRF Token untuk keamanan dalam mengirimkan data ajax.

 

2. Kemudian buat file csrf.php untuk melakukan pengecekan csrf saat ada request ajax yang akan di include di setiap file aksi yang dipanggil lewat ajax. Berikut adalah script di csrf.php :

Catatan :

Jika $headers[‘Csrf-Token’] menghasilkan error atau muncul peringatan No CSRF Token sobat bisa menggantinya dengan $headers[‘csrf-token’] atau $headers[‘Csrf-token’].

 

3. Buat file fungsi.php yang mana file ini berisi fungsi untuk mengenkripsi ataupun mendeskripsi datanya. Saya sarankan jika sobat ingin membuat sebuah fungsi maka digabungkan dalam 1 file saja seperti contoh ini sehingga jika sobat ingin menggunakannya berkali-kali tidak perlu membuat fungsinya lagi walaupun tinggal copas saja. Jika fungsinya tidak di 1 file maka jika ada perubahan apalagi error maka sobat harus mengganti satu per satu fungsinya. Mending kalau sobat hafal fungsinya dipakai dimana aja kalo ngga kan hanya buang-buang waktu saja. Isi fungsi.php adalah sebagai berikut :

Penjelasan :

– Fungsi convert() adalah untuk mengenkripsi dan deskripsi data.

– Fungsi anti() adalah untuk memfilter data untuk menghindari SQL Injection.

 

4. Buatlah file index.php pada folder sobat dan isikan dengan script dibawah ini

Pada tag <head>

Bootstrap digunakan untuk mempercantik tampilan dan juga tombol. Fontawesome digunakan untuk menampilkan logo pada tombol dan datatable digunakan untuk mempercantik tampilan tabel dan membuat search, pagination, kolom warna warni dll. Untuk paling atas saya menambahkan meda csrf-token untuk keamanan dalam mengirim Ajx request. Karena jika tidak ditambah itu maka nanti bisa saja orang lain menambahkan data dari local menggunakan aplikasi/tools buatan contohnya seperti postman atau bahkan menggunakan program seperti localhost. Tentunya ini belum cukup, akan lebih aman lagi jika ditambah pengecekan sesi login juga.

Pada tag <body> bagian bawah isikan

Karena ini hanya demo maka saya menggunakan css dan js online. Jika untuk kepentingan development disarankan untuk mendownload terlebih dahulu librarinya.

Pada tag <body> isikan script dibawah

Penjelasan :

– Pada tag <form>…</form> itu merupakan form dari inputan yang akan kita buat.

– Sedangkan pada <div class=”data”></div> itu adalah untuk menampilkan datanya. Pada postingan ini saya bedakan filenya karena nanti setiap ada update saya akan merefreshnya melalui ajax sehingga website/aplikasi tidak perlu loading untuk merefreshnya.

 

Catatan: Jika sobat menggunakan ajax di banyak halaman maka sobat bisa menambahkan pada baris dibawah jangan di setiap file melainkan sobat buat dulu file main.js/custom.js yang mana nanti akan digunakan di setiap file

Cara penggunaan main.js/custom.js sama seperti penggunaan javascript biasa yaitu

Namun karena pada postingan ini hanya ada 1 halaman jadi bisa saya tambahkan javascriptnya di index.php

 

5. Buat file form_action.php untuk membuat aksi untuk mengenkripsi data dan menyimpan data ke database. Isinya adalah sebagai berikut :

Penjelasan :

– Pada contoh diatas saya menggunakan 2 fungsi sekaligus yang sudah kita buat sebelumnya yaitu anti() untuk memfilter data menghindari sql injection dan convert() untuk mendeskripsikan data. Jadi sebelum di deskripsi tentu kita harus memfilternya dulu jika sudah bersih datanya baru di deskripsi bukan sebaliknya ya. jadinya adalah seperti ini : $nama_mahasiswa = convert(“encrypt”, anti($_POST[‘nama_mahasiswa’]));

– Untuk insertnya saya menggunakan cara saya biasanya menggunakan mysqli bind statement tentunya juga bisa memperkecil SQL Injection dan saya sarankan sobat juga menggunakan seperti ini walaupun lebih panjang tapi lebih aman.

 

6. Selanjutnya buat file data.php untuk menampilkan datanya pada tabel dan isikan dengan script dibawah ini

Penjelasan :

– sobat bisa lihat pada script bagian ini “$nama_mahasiswa = convert(“decrypt”, $row[‘nama_mahasiswa’]);”, itu adalah script untuk mendeskripsi data dari database sehingga bisa dibaca oleh manusia.

– untuk lainnya untuk edit_data, hapus_data, dll saya menggunakan Ajax dan Datatable. Jadi untuk penjelasannya jika blum tau maka sobat bisa lihat pada postingan CRUD sebelumnya karena sudah banyak saya jelaskan itu.

Seperti yang sobat lihat, file koneksi.php dan fungsi.php saya include-kan sehingga kita hanya membuat 1 kali dan bisa kita pakai berkali-kali tanpa perlu membuatnya di setiap filenya.

 

7. Seperti yang sobat lihat pada file data.php pada bagian ajax edit_data kita memanggil file get_data.php yang berfungsi untuk menampilkan data yang ingin di edit. File get_data.php kita isikan dengan script dibawah ini

Penjelasan :

untuk funsinya sama seperti saat di file data.php yaitu convert() untuk mendeskripsikan data.

 

8. Terakhir adalah buat file hapus_data.php yang berfungsi untuk menyimpan aksi untuk menghapus data. Isinya sama seperti crud yang sebelumnya

 

9. Jika sudah jadi maka hasilnya akan tampil seperti dibawah ini

 

Bagaimana mudah bukan? saya hanya membuat contoh sederhanya saja. Sobat bisa kembangkan sesuai kebutuhan sobat. Untuk CRUD kali ini tidak saya pisah-pisah dan banyak yang tidak saya jelaskan karena saya kira jika ingin membuat dengan cara ini sobat sudah mengerti dasar-dasar CRUD yang sudah sering juga saya bahas pada postingan saya yang sebelum-sebelumnya.

Sekian postingan saya tentang Membuat CRUD (Create, Read, Update, Delete) Enkripsi pada PHP & Ajax. Jika ada pertanyaan atau eror silahkan tinggalkan pada kolom komentar dibawah. Sampai ketemu pada postingan saya selanjutnya.

Jika sobat ingin mendownload tutorial diatas maka sobat bisa klik link dibawah ini :

Sampai jumpa pada postingan saya selanjutnya..

 

Leave a Reply

Your email address will not be published. Required fields are marked *

4 + fourteen =