CRUD Enkripsi / Deskripsi dengan Base64 pada PHP – Part 1 Menampilkan Data

Cara Membuat CRUD (Create, Read, Update, Delete) Enkripsi / Deskripsi dengan Base64 pada PHPPart 1 Menampilkan Data – Hai sobat pada kesempatan kali ini saya akan membahas lagi-lagi tentang CRUD, namun pada CRUD yang ini saya akan membuat datanya terenkripsi. Sebenarnya Base64 ini lebih ke encoding dan fungsinya memang seperti base64_encode().

Sebenarnya apa itu encoding dan apa bedanya dengan enkripsi kalau begitu? Encoding itu adalah suatu fungsi untuk menyamarkan data saja. Dengan encoding kita bisa menggunakannya pada banyak sistem aplikasi atau kita bisa membuat encoding dan decoding pada banyak bahasa pemrograman bahkan di query mysql sekalipun. Setelah di encoding ini juga nanti bisa dikembalikan ke teks aslinya. Berbeda dengan enkripsi, dengan enkripsi kita membutuhkan key pada saat enkripsi untuk mendeskripsikan/mengembalikan ke teks aslinya. Ada juga yang namanya Hash dan ini biasanya dibuat untuk mengenkripsi password dan ada yang mengatakan hash itu one way enkripsi tapi nyatanya bisa saja dikembalikan ke aslinya lhoo.. tapi saya tidak akan membahas Hash disini dan saya akan membahas CRUD dengan enkripsi yang hanya bisa dibaca menggunakan keynya saja pada postingan saya selanjutnya mungkin setelah postingan CRUD dengan base64 ini.

Seperti biasa pada postingan tentang CRUD saya bagi menjadi beberapa part dan pada part yang pertama ini saya ingin membahas tentang cara menampilkan data yang telah diencoding menggunakan base64. Sobat cukup ikuti cara dibawah ini. Untuk caranya saya sama seperti CRUD yang kedua yaitu menggunakan AJAX. Untuk koneksi databasenya masih menggunakan MySQLi dengan metode Object Oriented. Jika sobat belum mengetahuinya maka sobat bisa membaca dengan klik link dibawah

Cara Membuat Koneksi dengan Database MySQL menggunakan 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 terencode. Jika sobat ingin menampilkan dengan tipe date agar bisa di sort berdasarkan tanggal tertua dan termuda maka sobat tidak perlu meng-encode kolom tanggal.

 

3. Isikan data pada tbl_mahasiswa_base64 dengan mengetikkan query dibawah ini

 

Menampilkan Data dari Database MySQL dengan Ajax

Untuk mempercantik tampilan saya menggunakan bootstrap 4 dan saya tidak membutuhkan datatables seperti pada CRUD ajax sebelumnya karena nanti kita akan membuat search sendiri. Langsung saja saya berikan tutorialnya yaitu :

1. Pertama buatlah folder pada htdocs, pada contoh saya beri nama folder dewan-crud-base64.

2. Buatlah file koneksi.php pada folder project sobat dan isikan dengan script dibawah

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

 

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

Di paling atas atau pada baris pertama diatas tag <html> kita tambahkan baris berikut untuk membuat session csrf_token

Pada tag <head>

Karena kita menggunakan Ajax maka kita perlu csrf token untuk membatasi siapa saja yang bisa mengakses url. Ini berfungsi untuk keamanan dalam pertukaran datanya.

Kemudian tambahkan css untuk mempercantik tampilan pada contoh kali ini saya menggunakan bootstrap.

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.

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 atau nanti sobat bisa download project di akhir postingan.

Pada tag <body> isikan script dibawah

 

4. Pada tag <body> paling bawah kita buat script dibawah untuk menampilkan tabelnya dan menjalankan menu searchnya

Penjelasan :

1. Pada kode dibawah adalah untuk mengirim csrf token saat menggunakan Ajax. Sobat bisa menempatkan kode ini pada main.js yang mana file tersebut kita indludekan di setiap file sehingga kita tidak perlu menambahkan kode ini pada setiap file atau pada setiap Ajax. Cara ini lebih memudahkan kita karena kita hanya sekali menuliskan kode dibawah. Kode ini adalah kode yang akan dikirimkan setiap kita membuat ajax.

 

5. Buat file data.php yang berfungsi untuk reload data menggunakan ajax sehingga aplikasi sobat tidak perlu loading saat menyimpan data atau ada data update. Isikan data.php dengan script dibawah ini

 

6. Untuk keamanan karena kita menggunakan header pada ajax, kita perlu membuat file csrf.php kemudian isikan dengan script dibawah

Catatan :

– Jika setelah ditambahkan csrf terjadi error dengan pasan ‘No CSRF Token’ berarti sobat belum mengirimkan csrf saat membuat ajax. Script saat mengirimkan seharusnya ada pada main.js atau file php menggunakan kode $.ajaxSetup().

– Jika sobat sudah mengirimkan dan masih ERROR yang sama mungkin kasusnya seperti yang pernah saya alami, pada ajaxSetup saya mengirimkan Csrf-Token namun yang terkirim malah csrf-token, sehingga sobat harus mengganti pada kode $headers[‘Csrf-Token’] menjadi $headers[‘csrf-token’].

-Sedangkan jika sobat mengalami error Wrong csrf token berarti token yang dikirimkan tidak sama, mungkin penyebabnya sessionn belum dimulai sehingga sistem membuat session cesr_token baru. Untuk kasus inisobat perlu menambahkan kode session_start();

 

7. Jika sobat jalankan http://localhost/dewan-crud-base64/ maka akan muncul hasilnya seperti gambar dibawah

Padahal yang ada pada database hanyalah kata yang tidak bisa dibace seperti gambar dibawah

Eitssss………. tunggu dulu ini masih belum selesai. Jika sobat melakukan search untuk menemukan baris dengan nama mahasiswa ‘Dewan’ namun sobat mencarinya denga kata kunci ‘dewan’ maka tidak akan ketemu. Dulu saya pernah membuat aplikasi membuat base64 sperti ini dan ini akan menjadi masalah karena User tidak mau peduli dengan masalah itu dan pasti maunya untuk dipermudah dan jika kita tidak bisa mencarinya dengan Sensitive Case maka itu sama saja aplikasi yang kita buat tidak berguna. Oleh karena itu sebelum sobat membuatnya menggunakan base64, akan saya berikan contoh ini supaya tidak mengalami kesalahan yang sama.

 

Cara Membuat Search Sensitive Case dengan Base64 pada PHP

Perlu sobat ketahui, database mysql/mariadb juga support untuk encode/decode data menggunakan base64. Seperti yang sudah saya contohkan sebelumnya, untuk langsung meng-encode data bisa dengan perintah berikut

Dan untuk meng-decode data yang sudah di encode adalah dengan perintah dibawah

Dan untuk membuatnya bisa mencari dengan huruf yang sensitive case / tidak melihat besar kecil huruf maka sobat juga harus mengkonvertnya terlebih dahulu ke dalam format utf8mb4. Sehingga pada perintah untuk menampilkan data pada tabelnya di file data.php sobat ubah menjadi seperti dibawah

Dengan query diatas selain untuk convert ke utf8mb4 dan menjadikan pencarian tidak lagi sensitif terhadap besar kecil huruf tapi juga dapat mencari ke semua kolom.

 

Jika tabel sudah tampil dan search bisa dengan huruf besar maupun kecil berarti tandanya Ajax sudah bekerja sedang sempurna. Sisanya kita nanti tinggal menjadikan action berjalan. Sekian postingan saya tentang CRUD Enkripsi / Deskripsi dengan Base64 pada PHP – Part 1 Menampilkan Data. Jika ada pertanyaan atau eror silahkan tinggalkan pada kolom komentar dibawah. Sampai ketemu pada postingan saya selanjutnya.

Baca juga :

Membuat CRUD Expert, Upload & Pencarian dengan JQuery, Ajax, Bootstrap Modal, SweetAlert dan WYSIHTML5 pada PHP

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

Sampai jumpa pada postingan saya selanjutnya..

6 thoughts on “CRUD Enkripsi / Deskripsi dengan Base64 pada PHP – Part 1 Menampilkan Data

  1. Saya coba pk tools online decode hasilnya muncul kembali plain text nya, gmn caranya
    supaya tidak bisa di decode org lain. apakah harus menambahkan salt atau yg lainnya,.

      1. siap matur suwun infonya, bagaimana untuk enkripsi php seperti ioncube spy data sensitif tetap aman walaupun kebobolan di databasenya

Leave a Reply

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

10 + twelve =