Auto-detects whether you're encoding or decoding. Drop an image to get a copy-ready data URI. No uploads, no logging.
Input
DecodingOutput
15 B��e� +�
Paste text or drop an image
Text mode auto-detects encode vs decode. Image mode outputs a data URI.
Read the result
Copy-ready output in the right pane; byte counts shown both sides.
Copy or download
Copy to clipboard or save as .txt or the decoded binary.
Private by default
Everything runs in your browser — the token or file never leaves the page.
Base64 strings use a limited alphabet (A–Z, a–z, 0–9, + / =). If the input matches that pattern and has a valid length, we treat it as base64 and decode. Otherwise we encode it.
A data URI lets you embed an image directly inside CSS or HTML without a separate file. Great for tiny icons in inline emails, email signatures, or background-image CSS where one extra HTTP request would cost more than the base64 overhead.
No — base64 is just a way to represent arbitrary bytes using printable ASCII. It adds ~33% size overhead and offers zero confidentiality. Use it for transport or embedding, never for secrecy.
Base64url swaps + for - and / for _ so the output survives URLs without percent-encoding. JWTs use base64url; this tool accepts both on decode.
JWT decoder
Paste any JSON Web Token to inspect its header and payload. Nothing leaves your browser — no server, no logging.
ID generator
Generate UUID v4, UUID v7, nanoid, or ULID — one or a thousand at a time, copy-ready.
Translating screenshots into every locale is what lokal was built for. Upload once, ship to every store.
Explore lokal