Embedding small images in CSS
Convert a 2 KB icon to a Data URI to inline it in a stylesheet — saves an HTTP request. iKit produces the full data:image/png;base64,... string ready to paste.
Encode text or files to Base64, or decode Base64 back. URL-safe variant, UTF-8 safe, client-side only.
No. All encoding and decoding happens in your browser using built-in JavaScript APIs (TextEncoder, btoa, atob). Nothing is uploaded, logged, or stored.
Standard Base64 uses + and / which have special meanings in URLs. URL-safe Base64 (RFC 4648 §5) replaces them with - and _ respectively, so the output is safe to use in URLs, file names, and tokens like JWT.
Drop a file here, or click to browse
Encode: any file → Base64 string. Decode: paste a.txt containing Base64 to recover the original file.
Fast, accurate, with every option you'd expect.
Convert any text or file to Base64, or decode Base64 back to the original data. Instant preview as you type.
All encoding and decoding happens in your browser. Your text and files are never uploaded to any server.
Drop any file to get its Base64 string, a data URL (data:mime;base64,…), or decode a Base64 string back to a binary file.
Toggle URL-safe Base64 (Base64URL, RFC 4648) — replaces + with - and / with _ for use in URLs, file names, JWT, etc.
Full Unicode support for any language, emoji, CJK, RTL scripts. Uses TextEncoder/TextDecoder so nothing is mangled.
Optional MIME-style line wrap at 64 or 76 characters, and optional padding strip — for signatures, cookies, compact tokens.
Native browser APIs, no upload, lossless round-trip for any text or file.
Toggle between text mode (paste any string) and file mode (drop any file up to ~50 MB). Text is processed via TextEncoder for proper UTF-8 handling — emoji and non-ASCII characters round-trip correctly. Files are read as ArrayBuffer.
JavaScript's built-in btoa encodes the bytes to Base64. For URL-safe variant we replace + with - and / with _, and optionally strip padding (the format JWT uses). For very large files we chunk encoding to avoid blocking the main thread.
Paste a Base64 string and we run atob to decode. If you encoded a binary file originally, we offer a download with the original MIME type; if you encoded text, we decode it back via TextDecoder. Both directions are lossless.
One-click copy puts the Base64 on your clipboard. Or download as a .txt file. Or generate a data:image/png;base64,... URI for inline embedding in CSS / HTML — assembled in your browser.
What people actually use Base64 for, and how iKit fits in.
Convert a 2 KB icon to a Data URI to inline it in a stylesheet — saves an HTTP request. iKit produces the full data:image/png;base64,... string ready to paste.
Decode the middle segment of a JWT to inspect the claims. Pair this with iKit's JSON Decoder for a clean two-step debugging flow that never sends the token to a server.
When a transactional email API requires Base64-encoded attachments, drop the file into iKit, copy the result, paste into your request body. No CLI base64 dance, no platform differences (macOS vs Linux flags).
Decode a PEM block (after stripping the BEGIN/END lines) to inspect the raw DER bytes. Or encode a binary key into PEM for tools that only accept text format.
Base64 is the default carrier for sensitive payloads — JWTs containing user IDs and permissions, embedded customer photos, internal API responses. A server-side Base64 tool sees every byte you paste. iKit's encoder runs purely in JavaScript, so nothing leaves your browser tab.
fetch or XHR calls during encode or decode.
Deep-dive tutorials and tool comparisons from the iKit blog.
No. All encoding and decoding happens in your browser using built-in JavaScript APIs (TextEncoder, btoa, atob). Nothing is uploaded, logged, or stored.
Standard Base64 uses + and / which have special meanings in URLs. URL-safe Base64 (RFC 4648 §5) replaces them with - and _ respectively, so the output is safe to use in URLs, file names, and tokens like JWT.
Yes. We use TextEncoder to convert your text to UTF-8 bytes before encoding, and TextDecoder to convert the decoded bytes back. Any Unicode character — CJK, emoji, RTL scripts — round-trips correctly.
Yes. Switch to File mode and drop any file. The tool gives you the Base64 string, a data URL you can paste into HTML/CSS, or a.txt download. File size is limited by browser memory (typically works up to several hundred MB).
Standard Base64 pads the output with '=' characters so its length is a multiple of 4. Some uses (JWT, URL tokens) strip padding to save space; the decoder can reconstruct it. Check 'No padding' to strip trailing =.