Base64 Tool Kits runs entirely in your browser

Privacy

This is not a policy about what we promise to do with your data. There is no server here to make that promise about — the claims below are about what the page is built to do, and every one of them is something you can check yourself in a few seconds, in this browser, right now.

No server ever receives your data

Encoding and decoding happen in JavaScript, in this tab. There is no upload, no account, and nothing on the other end of a request, because this page is not permitted to make one: it ships a Content-Security-Policy containing connect-src 'none', which blocks every kind of outgoing connection a page can make — fetch, XMLHttpRequest, WebSocket, navigator.sendBeacon, an <img> or stylesheet pointed at another host — after the page has loaded. It is not a setting we could quietly turn off without it showing: any future change to it is a named, dated exception, logged as such, never a quiet edit.

Check it yourself

Open your browser's developer tools (F12, or right-click → Inspect) before you do anything else on this page:

No ads, no analytics, no cookies — and so no consent banner

There are no advertisements, no analytics or telemetry of any kind, and no cookies. A consent banner exists to ask permission for tracking that would otherwise happen; there is nothing here that would otherwise happen, so there is nothing to ask permission for.

Check it yourself

What is kept between visits — and what never is

Three preferences are written to this browser's localStorage, under this site's own origin, so they are remembered the next time you open the page: your theme (jwv-theme), your accent colour (jwv-accent), and whether live conversion is on (b64-live). That is the complete list. None of them can hold your text — each is one of a small, fixed set of words (system/light/dark, blue/violet/teal, on/off), so there is no code path by which anything you type or paste could end up in one.

Your input and output text are never written to localStorage, in any form, ever. They exist only as the live value of the two boxes on the tool page and in memory while the tab is open.

One narrower exception, stated precisely rather than glossed over: clicking "Open in Json Web Viewer" — offered only when decoded output is itself valid JSON — writes that decoded text to sessionStorage for the moment it takes to hand it to the flagship editor, under the key b64-jwv-handoff. sessionStorage is not localStorage: it belongs to this one browser tab, is never sent anywhere over the network by the browser itself, and is discarded automatically when the tab closes. It exists only if you press that specific button, holds exactly the text that was already on your screen, and is not how anything reaches the address bar — see the next section.

Check it yourself

Your text is never in the address bar either

A link to this tool can only carry your settings — direction, character set, and the formatting options — never your text. The code that writes the address bar (buildQuery()) is handed only that settings object; it is never given your input or output, so there is no path by which it could put either into a URL even if it tried. A dedicated test pins the exact, short list of names that function is allowed to write.

← Back to the tool