Enkoder dan Dekoder
Alat untuk mengenkode dan mendekode teks antar format. Seluruh proses berjalan di peramban Anda, jadi data Anda tidak pernah diunggah.
- Decoder CSRTempel permintaan penandatanganan sertifikat atau sertifikat X.509 untuk membaca isinya: subjek, nama alternatif, algoritma dan panjang kunci, masa berlaku, ekstensi, dan sidik jari. Semuanya diterjemahkan di peramban Anda dan tidak ada yang diunggah.
- Enkoder dan Dekoder Base64Enkode teks menjadi Base64 atau kembalikan lagi. Unicode ditangani dengan benar, jadi bahasa Jepang, Tionghoa, Korea, dan emoji tetap utuh bolak-balik.
- Enkoder dan Dekoder URLEnkode teks agar aman dipakai di URL, atau kembalikan lagi. Pilih apakah Anda mengenkode satu nilai query atau URL utuh, karena keduanya butuh escape yang berbeda.
- Generator Hash dan HMACKetik atau tempel teks untuk melihat hash MD5, SHA-1, SHA-256, dan SHA-512 sekaligus, atau beralih ke HMAC untuk menandatanganinya dengan kunci rahasia. Semuanya berjalan di peramban Anda, jadi teks maupun kunci tidak keluar dari perangkat.
- Dekoder JWTTempel JWT untuk membaca header dan payload-nya serta melihat kapan ia kedaluwarsa. Proses dekode berjalan sepenuhnya di peramban Anda, jadi token tidak pernah keluar dari perangkat.
- Generator JWTSusun payload JWT, pilih algoritmenya, lalu tandatangani dengan rahasia Anda. Penandatanganan berjalan sepenuhnya di peramban Anda, jadi rahasia itu tidak pernah keluar dari perangkat.
Memilih alat encoding
Gunakan Base64 untuk memindahkan byte melalui saluran teks dan URL encoding untuk menaruh sebuah nilai dengan aman di dalam alamat. Gunakan generator hash untuk checksum dan untuk tanda tangan HMAC, tempat secret bersama membuktikan siapa yang membuat pesan itu.
Gunakan decoder JWT untuk membaca claim sebuah token dan, dengan secret-nya, memeriksa tanda tangannya; generator JWT untuk membuat token uji; serta decoder CSR untuk melihat nama dan kunci apa yang sebenarnya diminta sebuah certificate request sebelum dikirim ke certificate authority.
Empat pekerjaan yang tampak mirip padahal berbeda
Encoding menulis ulang data ke alfabet yang lebih aman dan sepenuhnya bisa dibalik oleh siapa saja: Base64 dan percent-encoding termasuk di sini. Hashing bersifat satu arah dan tanpa kunci, sehingga membuktikan dua masukan sama tanpa mengungkap keduanya. Penandatanganan menambahkan secret, dan itulah yang membuat sebuah pesan menjadi bukti siapa pengirimnya. Sementara inspeksi hanya mendekode struktur yang memang sudah publik, seperti yang dilakukan pembaca JWT dan CSR.
Mencampuradukkan yang pertama dengan yang ketiga adalah kesalahan yang mahal. Payload Base64 terlihat teracak padahal tidak melindungi apa pun; siapa pun yang memilikinya bisa membacanya dalam sedetik, dan itu mudah dibuktikan dengan menempelkannya ke decoder di sini.
Kegagalan yang berulang adalah lapisan
Encoding tidak idempoten. Escape sebuah nilai dua kali, dan %20 menjadi %2520, tanda kutip menjadi tanda kutip dengan backslash ganda, dan payload yang seharusnya berisi objek malah berisi string JSON. Ini terjadi setiap kali kode aplikasi meng-encode sesuatu yang memang akan di-encode oleh framework.
Perbaikannya adalah menghapus salah satu dari dua langkah itu, bukan mendekode dua kali di sisi penerima, yang hanya memindahkan bug. Mendekode selapis demi selapis di alat-alat ini menunjukkan berapa lapisan yang sebenarnya ada, dan biasanya itulah cara tercepat menemukan komponen mana yang menambahkan lapisan tambahan.
Pikirkan apa yang Anda tempelkan
Semua proses di sini berjalan di browser Anda, jadi apa pun yang Anda tempel tidak diunggah atau dicatat. Ini perlu diketahui karena materi yang masuk ke alat-alat ini jarang bersifat netral: CSR memuat nama host internal dan nama organisasi, JWT memuat identifier pengguna dan scope, dan masukan sebuah hash bisa jadi secret itu sendiri.
Dua kebiasaan tetap layak dijaga. Verifikasi tanda tangan dengan secret uji alih-alih secret produksi bila memungkinkan, dan jangan pernah menempelkan kunci privat ke halaman web mana pun, termasuk halaman ini - CSR aman dibagikan, kunci yang menandatanganinya tidak.
