Teks dan kode / Panduan

Encoding, hashing dan enkripsi: mana yang Anda perlukan?

Teks yang sama bisa di-escape untuk HTML, dikodekan untuk URL atau Base64, atau diringkas menjadi hash. Pilih operasi sesuai tujuan data.

Mulai dengan tujuan

Tanya di mana nilai akan pergi sebelum memilih alat. HTML entitas encoding membantu mewakili karakter seperti ampersand di dalam teks HTML. Persentase encoding membuat nilai yang cocok untuk komponen URL, di mana ruang dan karakter terpisah membutuhkan representasi yang didefinisikan. Base64 mewakili byte arbitrari menggunakan alfabet terbatas yang nyaman dalam sistem berorientasi teks. Sebuah SHA-256 digest adalah sidik jari panjang tetap yang digunakan untuk membandingkan data, bukan cara untuk mengembalikan aslinya. Keempat operasi ini bukan enkripsi. Jika rahasia harus tetap rahasia, pilih desain enkripsi yang diverifikasi yang sesuai dengan aplikasi daripada menyembunyikannya dengan Base64 atau hash.

Satu masukan, empat hasil yang berbeda

Ambil teks pendek A&B. Dalam teks HTML biasa, ampersand dapat ditulis sebagai A&B; pembacaan HTML menampilkan A&B lagi. Sebagai komponen URL, menjadi A%26B, karena sebuah ampersand yang tidak dihindari dapat memisahkan parameter pertanyaan. UTF-8 menkodekan tiga karakter yang terlihat sebagai byte 41 26 42 dalam heksadesimal, dan standar Base64 mewakili byte-byte tersebut sebagai QSZC. Sebuah alat SHA-256 menghasilkan sebuah heksadesimal panjang digest sebagai gantinya; perubahan input kecil biasanya akan memberikan digest yang sangat berbeda. Keluaran ini tidak dapat ditukar: meletakkan Base64 di mana komponen URL diharapkan masih dapat memperkenalkan karakter URL terpisah, dan meletakkan hash di dokumen tidak dapat mereproduksi teks asli.

Empat jalur dari satu masukan; tiga di antaranya dapat didekode kembali ke data asal.
  1. A&B — teks asli
  2. HTML: A&B · URL: A%26B
  3. Base64: QSZC · SHA-256: nilai hash

Reversibilitas dan keamanan

Entitas HTML, persentase encoding dan Base64 dapat direversi ketika encoding input dan konteksnya diketahui. Itulah mengapa mereka tidak memberikan rahasia. Seseorang membaca string Base64 bisa mendekodikannya tanpa kunci. SHA-256 dirancang untuk satu arah, namun hashing sandi yang dapat diprediksi sendiri tidak merupakan metode penyimpanan sandi yang aman; skema hash kata sandi khusus yang memakai salt mengatur masalah yang terpisah. Sebuah digest juga tidak membuktikan siapa yang memasok data kecuali jika digunakan dalam protokol yang diverifikasi. Untuk konten browser, escape adalah kontekstual spesifik: teks HTML, atribut HTML, URL dan sumber JavaScript memiliki aturan yang berbeda. Melepaskan satu konteks dan menempelkan hasil ke konteks lain bisa tidak aman.

Sebuah aliran kerja konversi praktis

Pertama mengidentifikasi teks mentah dan format penerimaan. Jika Anda membangun node teks HTML, gunakan encoder entitas HTML untuk karakter yang membutuhkan representasi di sana; biarkan sistem template yang dipercaya menangani markup HTML dalam produksi. Jika Anda memasukkan nilai ke dalam satu parameter URL, gunakan pengekodan komponen URL sekali, lalu tambahkan nilai yang dikodekan ke parameter. Jika antarmuka secara eksplisit mengharapkan Base64, konversi teks ke byte dengan encoding karakter yang disepakati, biasanya UTF-8, sebelum encoding byte tersebut. Jika Anda perlu membandingkan integritas dari dua urutan byte, hash keduanya dengan algoritme yang sama dan bandingkan digest mereka. Simpan byte asli yang tersedia jika Anda kemudian perlu menampilkan pesan asli.

Periksa perjalanan pulang-pergi

Coba dekoding hasil dengan dekoder yang sesuai bila transformasi harus dapat direversi. Perhatikan untuk encoding ganda: A%26B encoded untuk kedua kalinya mengandung %25 dan hanya dekode satu lapisan pada satu waktu. Periksa apakah penerima Base64 Anda mengharapkan alfabet standar, varian URL-safe atau karakter padding. Untuk hash, konfirmasikan enkoding byte yang tepat dan apakah pergantian baris atau spasi di akhir adalah bagian dari masukan; teks yang serupa secara visual mungkin memiliki byte yang berbeda. Konverter Base64 tertanam di bawah ini adalah cara cepat untuk menguji kasus reversible. Gunakan alat HTML, URL dan SHA-256 yang terhubung untuk jalur lain, lalu pilih keluaran yang artinya cocok dengan sistem penerima.

Coba konverter

Coba teks-ke-Base64 di sini, kemudian dekode keluaran untuk mengkonfirmasi perjalanan pulang pergi.

Ubah teks menjadi Base64 atau Base64URL dengan pilihan karakter, alfabet, dan tanda pengisi.

Buka konverter lengkap

Panduan lainnya

Panduan konversi

Jelajahi panduan