Base64 dan URL Encoding: Encode Bukan Encrypt
Base64 dan URL encoding mengubah representasi, bukan kerahasiaan. Siapa pun bisa membalikkannya dengan satu fungsi standar.
Kesalahan yang paling mahal: menganggap Base64 menyembunyikan sesuatu. Base64 adalah pengkodean alfabet, bukan enkripsi. Tidak ada kunci, dan decoding-nya satu panggilan fungsi di setiap bahasa.
Base64 berguna untuk satu hal: memindahkan data biner melalui kanal yang hanya aman untuk teks. Email, JSON, atribut data URL. Ia menambah sekitar 33 persen ukuran sebagai biaya.
URL encoding beda tujuan: mengubah karakter yang punya arti khusus di URL jadi bentuk persen. Spasi jadi %20, tanda plus jadi %2B. Ini soal sintaks, bukan kerahasiaan.
Dua jebakan praktis: Satu, Base64 standar memakai + dan /, yang keduanya punya arti di URL. Varian URL-safe menggantinya dengan - dan _ dan membuang padding. Mencampur keduanya menghasilkan string yang terlihat benar dan gagal decode. Dua, URL encoding pada seluruh URL bukan hal yang benar. Yang di-encode adalah komponen individual (query value, path segment), bukan seluruh string. Meng-encode seluruh URL akan mengubah :// juga.
Kalau butuh kerahasiaan, yang dipakai adalah enkripsi dengan kunci, atau minimal hashing bila hanya butuh verifikasi. Encode tidak pernah cukup.