Base64 adalah jenis penyandian yang berguna yang memungkinkan Anda menyandikan string dalam PHP yang dapat Anda dekode dengan mudah
PHP menggunakan standar untuk penyandiannya. Standar ini awalnya dirancang untuk membantu pengiriman data biner dalam protokol berbasis teks seperti email
Sesuatu seperti gambar akan dikodekan dalam format ini selama transit dan kemudian diterjemahkan kembali ke data aslinya oleh klien penerima
Ada banyak kegunaan lain untuk encoding dan decoding Base64 di PHP. Misalnya, dalam sistem komentar sebelumnya kami menggunakan data SVG yang disandikan ke dalam Base64 yang kemudian ditafsirkan oleh browser web kembali ke data aslinya.
Selama beberapa bagian berikutnya, kami akan menunjukkan kepada Anda bagaimana Anda dapat menyandikan dan mendekode menggunakan Base64 di PHP. Secara khusus kita akan menyentuh fungsi PHP ________ 32 _______ dan ________ 33 ______
Harap dicatat bahwa Base64 tidak boleh digunakan untuk keamanan. Ini dirancang untuk dikodekan dan didekodekan secara efisien dengan cepat dan tidak menawarkan perlindungan
Fungsi base64_encode() di PHP
Di bagian ini, kami akan menunjukkan kepada Anda cara menyandikan string dalam format Base64 di PHP. Untuk mencapainya, Anda akan mempelajari semua tentang fungsi base64_encode()
Definisi Fungsi base64_encode() PHP
Biarkan kami menunjukkan kepada Anda bagaimana tepatnya fungsi base64_encode() didefinisikan dalam PHP. Mengetahui bagaimana itu didefinisikan akan memudahkan Anda untuk memahami jenis data apa yang akan Anda lakukan
Fungsi ini sangat mudah karena hanya menampilkan parameter tunggal yang mengharapkan string
Di bawah ini Anda dapat melihat bagaimana base64_encode() didefinisikan. Definisi ini menunjukkan parameter tipe data yang diharapkan dan tipe pengembalian fungsi
base64_encode(string $string): stringFungsi ini hanya membutuhkan satu parameter. Parameter itu adalah string yang ingin Anda enkode ke standar MIME Base64
PHP akan mengembalikan versi string Anda yang disandikan Base64. Anda akan melihat bahwa string ini akan menggunakan lebih banyak data dan lebih panjang dari data aslinya
Karena cara kerja Base64, ini akan menghabiskan sekitar 33% lebih banyak data daripada string asli, jadi berhati-hatilah jika Anda berurusan dengan string sumber besar
Contoh penggunaan base64_encode()
Sekarang setelah kita mengetahui definisi fungsi base64_encode() di PHP, kita dapat menjelajahi contoh bagaimana Anda akan menggunakannya dalam kode Anda
Kami akan membuat contoh ini relatif mudah dengan meneruskan string langsung ke fungsi
Di bagian atas contoh ini, kita akan membuat variabel yang disebut "<?php $website = "pimylifeup.com"; echo base64_encode($website); ?>1" dan menetapkan string "<?php $website = "pimylifeup.com"; echo base64_encode($website); ?>2"
Kami kemudian menggunakan fungsi base64_encode() PHP, meneruskan variabel "<?php $website = "pimylifeup.com"; echo base64_encode($website); ?>1" ke dalam parameter tunggalnya. String Base64 yang dikembalikan akan ditampilkan berkat kami menggunakan pernyataan gema
<?php $website = "pimylifeup.com"; echo base64_encode($website); ?>_Di bawah, Anda dapat melihat bagaimana PHP menyandikan string “<?php $website = "pimylifeup.com"; echo base64_encode($website); ?>2” kami dalam format Base64
Anda akan segera menyadari bahwa string yang dihasilkan lebih panjang dan diakhiri dengan tanda sama dengan. Ini karena standar MIME-Base64 menggunakan tanda sama dengan untuk padding karena panjangnya harus selalu kelipatan tiga
cGlteWxpZmV1cC5jb20=_Fungsi base64_decode() di PHP
Sekarang setelah Anda tahu cara menyandikan string dalam format MIME-Base64 di PHP, mari kita jelajahi cara mendekode string
PHP menyediakan fungsi yang disebut base64_decode()_ yang akan mengambil string yang disandikan dan mendekodekannya kembali ke data aslinya
Definisi Fungsi base64_decode() PHP
Sebelum kita melanjutkan, mari kita jelajahi definisi base64_decode() dalam PHP. Definisi ini akan menunjukkan kepada Anda berbagai parameter dan tipe kembalian dari fungsi ini
Fungsi inilah yang akan mengambil string Base64 dan mengubahnya kembali ke data aslinya
Di bawah ini Anda dapat melihat definisi fungsi. Ini menunjukkan dua parameter di samping tipe pengembalian data
base64_decode(string $string, bool $strict = false): string|falseFungsi ini memiliki dua argumen yang dapat Anda gunakan. Yang pertama wajib, dan yang kedua opsional
- <?php
$website = "pimylifeup.com";
echo base64_encode($website);
?>8 – Parameter ini diperlukan dan merupakan tempat Anda akan meneruskan string yang disandikan MIME Base64
Jika string Anda menggunakan standar yang berbeda, Anda mungkin mengalami masalah saat menggunakan fungsi ini - <?php
$website = "pimylifeup.com";
echo base64_encode($website);
?>_9 – Parameter ketat adalah opsional dan diatur ke “cGlteWxpZmV1cC5jb20=0” secara default
Dengan menyetel <?php $website = "pimylifeup.com"; echo base64_encode($website); ?>_9 ke “cGlteWxpZmV1cC5jb20=2“, PHP akan mengembalikan “cGlteWxpZmV1cC5jb20=0” jika string Base64 berisi karakter apa pun yang tidak tersedia dalam alfabet Base64
Saat disetel ke “cGlteWxpZmV1cC5jb20=0“, PHP akan secara diam-diam membuang karakter yang tidak valid dan mencoba mendekode string yang dihasilkan
Fungsi base64_decode() PHP akan mengembalikan "cGlteWxpZmV1cC5jb20=0" pada kegagalan, atau data yang didekodekan. Data yang didekodekan mungkin biner, jadi bersiaplah untuk menangani ini dalam kode Anda
Contoh penggunaan base64_decode() di PHP
Pada bagian ini, kami akan menunjukkan cara menggunakan fungsi base64_decode() di PHP. Kami akan memberikan dua contoh berbeda di bawah ini
Contoh pertama akan menunjukkan bagaimana fungsi digunakan tanpa parameter opsional. Contoh kedua akan menunjukkan cara kerja opsi ketat
Penggunaan Dasar dari Fungsi base64_decode()
Contoh pertama kita akan mengeksplorasi penggunaan dasar dari fungsi base64_decode(). Jadi dengan contoh ini, kita akan mengabaikan parameter kedua
Untuk memulai skrip ini, kami akan mendefinisikan string PHP yang disebut "<?php $website = "pimylifeup.com"; echo base64_encode($website); ?>8" dan menetapkannya sebagai string yang disandikan Base64 (base64_decode(string $string, bool $strict = false): string|false0). String ini sama dengan yang kami enkode sebelumnya dalam panduan ini
Kami kemudian meneruskan variabel "<?php $website = "pimylifeup.com"; echo base64_encode($website); ?>_8" kami langsung ke fungsi base64_decode(). Kami kemudian mengeluarkan string yang dihasilkan dengan menggunakan pernyataan gema di depannya
<?php $string = "cGlteWxpZmV1cC5jb20="; echo base64_decode($string); ?>Setelah menjalankan kode contoh di atas, PHP akan mendekodekan string Base64 kami kembali ke data aslinya. Dalam kasus kami, ini akan menjadi teks berikut
pimylifeup.comMenggunakan Bidang Ketat di Fungsi base64_decode()
Sekarang kita telah melihat penggunaan dasarnya, mari kita coba menggunakan fungsi base64_decode(), tetapi kita akan mengaktifkan mode ketat dengan menyetel parameter kedua ke “cGlteWxpZmV1cC5jb20=2“
Kami akan menyesuaikan string yang disandikan dengan menambahkan tiga karakter Base64 yang tidak valid untuk menunjukkan fungsinya. Ini adalah tanda seru (base64_decode(string $string, bool $strict = false): string|false5), tanda tanya (base64_decode(string $string, bool $strict = false): string|false6), dan tagar (base64_decode(string $string, bool $strict = false): string|false7)
Di bagian atas skrip kami, kami mendefinisikan variabel kami yang disebut "base64_decode(string $string, bool $strict = false): string|false8" dan memberinya nilai "base64_decode(string $string, bool $strict = false): string|false9"
Kami kemudian akan meneruskan ini ke dalam dua panggilan fungsi terpisah
- Yang pertama akan menggunakan fungsi base64_decode() PHP tetapi tetap nonaktif
Ini akan menunjukkan bagaimana PHP biasanya menangani string Base64 yang berisi karakter yang tidak valid - Kami mengaktifkan fungsionalitas ketat base64_decode() untuk panggilan kedua dengan menyetel parameter keduanya ke cGlteWxpZmV1cC5jb20=2
Alih-alih mencoba menghapus karakter yang tidak valid, fungsi akan gagal dan mengembalikan cGlteWxpZmV1cC5jb20=0
Untuk kedua fungsi ini, kami mengirimkan hasilnya langsung ke fungsi var_dump() PHP. Fungsi ini akan mencetak nilai dan tipe data yang dikembalikan
<?php $string = "cGlteWxpZ?#mV1cC5jb20="; var_dump(base64_decode($string)); var_dump(base64_decode($string, true)); ?>Di bawah ini Anda dapat melihat bagaimana fungsi base64_decode() PHP bekerja saat menyetel parameter ketat. Ketika ketat tidak disetel atau disetel ke salah, itu akan membersihkan string yang disediakan dan mencoba memecahkan kodenya
Namun, itu hanya akan gagal dan mengembalikan cGlteWxpZmV1cC5jb20=0 saat mode ketat diaktifkan
string(14) "pimylifeup.com" bool(false)Kesimpulan
Dalam tutorial ini, kami menunjukkan kepada Anda bagaimana PHP menangani string yang disandikan Base64. Anda dapat dengan mudah mendekode dan menyandikan string apa pun menggunakan dua fungsi sederhana
Meskipun awalnya dirancang untuk membantu mengirim data biner dalam protokol yang dioptimalkan untuk teks, pengkodean ini masih memiliki kegunaannya
Jika Anda memiliki pertanyaan tentang fungsi base64_encode() dan base64_decode(), silakan beri komentar di bawah
Pastikan untuk melihat tutorial PHP kami yang lain jika Anda ingin mempelajari lebih lanjut. Kami juga memiliki banyak panduan pemrograman lain jika Anda ingin mempelajari bahasa baru