When encryption happens in your browser instead of on the server, the security model fundamentally changes. Here is why and how.
Updated May 18, 2026
The location of where encryption happens is more important than what algorithm runs. Encrypt on the server: the server can decrypt. Encrypt in the browser: only the browser owner can. That one architectural choice separates real privacy from privacy theater.
When you upload a file to any service, encryption can happen in one of two places:
Almost every consumer service does option 1. The few that matter for privacy do option 2.
The threat model changes completely. With server-side encryption, you're trusting:
That's six layers of trust. With browser-side encryption, you trust your own browser. That's it.
For years, "browser encryption" meant a JavaScript library implementing AES from scratch. Slow, hard to audit, prone to side-channel attacks. Today, every modern browser ships the Web Crypto API — native, audited, hardware-accelerated AES exposed to JavaScript via crypto.subtle.
The relevant calls Zippd uses:
crypto.subtle.generateKey() — produces a real cryptographic key in browser-managed memory.crypto.getRandomValues() — fills a buffer with CSPRNG output for IVs.crypto.subtle.encrypt() — runs the actual AES-256-GCM operation, hardware-accelerated where available.crypto.subtle.decrypt() — same in reverse, with built-in GCM tag verification.The crypto is implemented by the browser vendor (Mozilla, Google, Apple). They have full-time cryptographers reviewing it. You don't have to trust a npm package — you trust your browser.
The visible-to-you steps:
You never installed anything. You never gave us your file in plaintext. The crypto happened on your machine.
The DevTools test:
For Zippd specifically: also check that the request URL goes directly to *.wasabisys.com, not to our backend. Browser → storage, with no plaintext stopover.
Yes. Modern browsers run AES-256 at 2–4 gigabytes per second thanks to AES-NI hardware instructions. The bottleneck on any real upload is your network, not the encryption. Even a 20 GB file's encryption takes a few seconds of CPU spread across the upload duration.
Compression (when applied) is the slower step, and we auto-skip it for incompressible types like video and images. More on upload performance here.
The Web Crypto API has been stable across all major browsers since around 2015. Chrome, Firefox, Safari, Edge — all supported. The only modern context that doesn't ship it is some very locked-down enterprise builds and embedded devices, neither of which are realistic upload sources.
Browser-side encryption changes who can compromise your files:
| Threat | Server-side | Browser-side |
|---|---|---|
| Network eavesdropper | Mitigated by HTTPS | Mitigated |
| Server data breach | Catastrophic | Useless ciphertext |
| Rogue employee | Has access | No access |
| Subpoena to service | Plaintext disclosure | Ciphertext only |
| Service shutdown | Data may persist | Useless |
| Malware on YOUR machine | Compromised | Compromised |
The threats that browser-side encryption doesn't protect against are the ones at your endpoint. That's unavoidable for any encryption model — at some point the plaintext exists on a device.
In theory the JavaScript could be modified to send the key home. We don't, and the unminified crypto.js is auditable. Verify yourself in DevTools.
Then so is everything else. Encryption is meaningless against malware on the same device that's doing the encryption. Keep your browser updated.
Yes. All major browsers since around 2015. The Web Crypto API is a W3C standard.
The Web Crypto API itself is implemented by browser vendors and reviewed by their security teams. Zippd's JavaScript that orchestrates it is open for inspection in DevTools.
Upload a file with DevTools open. The PUT requests will contain ciphertext, not your file.
What E2EE really means for file transfer, why "encryption at rest" isn't the same thing, a...
A plain-English explanation of AES-256-GCM, why it beats older modes, and how to know your...
Most "anonymous" services log enough to identify you. Here is what real anonymous file sha...
Send up to 20 GB encrypted in your browser. No Dropbox subscription. No account at all.