It happens in your browser
The cryptography runs entirely on your device using the browser's built-in Web Crypto engine. Nothing to encrypt is ever uploaded — there's no server-side copy to leak, subpoena, or lose.
Lock text and files with a passphrase, share a secret that burns after one read, or send a message only one person can open. Every byte is encrypted right here in your browser — the server never sees your passphrase, your keys, or a single line of what you wrote.
Checking service…The cryptography runs entirely on your device using the browser's built-in Web Crypto engine. Nothing to encrypt is ever uploaded — there's no server-side copy to leak, subpoena, or lose.
For one-time secrets, only unreadable ciphertext is stored. The key travels inside the link itself, in the part browsers never send to a server. We couldn't read your secret if we wanted to.
AES-256-GCM with PBKDF2 key stretching — the same primitives that secure banks and password managers. No home-rolled ciphers, no obscurity. The whole method is written out below.
Protect text or a file with a passphrase. It's sealed with AES-256-GCM in your browser — nothing is uploaded, and only the passphrase can open it.
Any size of file works — it's encrypted in 4 MB pieces right in your browser, and nothing is ever uploaded. Encrypting also hides the original filename inside the container; decrypting restores it. In Chrome and Edge the result streams straight to disk, so even multi-GB files stay light on memory.
Turn a password, key, or note into a link that works exactly once — encrypted in your browser, read once, then gone.
One-time links need our server by design — the ciphertext lives here until it burns, so only ciphertext we can't read is stored. Anyone with the link can read the secret once, so send it through a channel you trust. For anything you intend to keep, use passphrase encryption above or the offline app.
This is a one-time secret. Opening it decrypts it in your browser and then destroys it on the server — so only reveal it when you're ready to read and save it. It can't be recovered afterward.
Want to send one back? Create your own one-time secret →
A passphrase means both sides have to agree on a secret first. Public keys remove that step: publish your public key anywhere, and anyone can send you a message that only your private key can open. The keys are made in your browser (ECDH on curve P-256) and never uploaded.
Save your private key somewhere safe — a password manager is ideal. We don't store it, so if you lose it, messages sent to you can't be opened.
Your passphrase is run through PBKDF2 — 250,000 rounds of hashing — into a 256-bit key. The stretching makes brute-forcing a weak passphrase far slower for an attacker.
A fresh random salt and nonce go into every operation, and GCM adds an authentication tag — so any tampering with the ciphertext is detected instead of silently decrypting to garbage.
Send the encrypted block however you like; deliver the passphrase through a different channel. Neither half is useful alone, and the server was never in the loop.
The honest inventory. This is the whole reason to encrypt on the device instead of on a server you have to trust.
Every cryptographic operation on this site runs in your browser through the Web Crypto API, the same vetted engine your browser uses for HTTPS. Your passphrase, your keys, and your plaintext are handled entirely on your device. The server's only job is to serve these pages and — for one-time secrets — to hold a blob of ciphertext it has no way to read.
When you lock something with a passphrase:
PBKDF2-HMAC-SHA-256 at
250,000 iterations. Stretching makes guessing a weak
passphrase expensive for an attacker.
AES-256-GCM using a fresh random
12-byte nonce. GCM also produces an authentication tag, so
any later tampering is detected rather than silently accepted.
magic · salt · nonce · ciphertext.
Text is base64url-armored behind a dlenc1: marker; files get a
.dlenc extension. Everything needed to decrypt is inside the
container — except the passphrase, which only you have.
Because the salt and nonce are random every time, encrypting the same text twice yields two completely different blocks. There is no decryption backdoor and no passphrase recovery: if you lose the passphrase, the data is gone.
This is the only tool that talks to the server, and it's built so the server stays blind:
#). Browsers never transmit the fragment to a server, so the key reaches the recipient without ever reaching us.A dump of our storage would reveal nothing but opaque bytes. The trade-off: anyone who has the full link can read the secret, so treat the link like the secret itself.
The Keys tool uses ECDH on curve P-256. You publish
a public key; a sender's browser generates a throwaway (ephemeral) keypair,
performs an ECDH agreement with your public key to derive a one-off
AES-256-GCM key, encrypts, and sends you the ciphertext plus the ephemeral
public key. Only your private key can re-derive that AES key. This is the
same ephemeral-static pattern used by tools like age.
It protects: data sitting on someone else's server, files in a shared drive, a secret in transit through channels you don't control, a note you want read once. If the ciphertext leaks, it's useless without the key.
It does not protect against:
Strong encryption is ordinary, legal, and protective — it's what keeps banking, messaging, and medical records safe. These tools exist to protect real people's privacy. They are not a shield for anything unlawful, and we'll cooperate with valid legal process to the (deliberately minimal) extent our design even allows.
No. Text and file encryption happen entirely in your browser. The only feature that sends anything is the one-time secret — and it uploads only ciphertext the server can't read, never your key or plaintext.
You shouldn't have to — and we mean that literally. Client-side encryption still means trusting the JavaScript our server sends on every visit; a compromised or coerced server could ship altered code and you'd never see it. That's why our standing recommendation is to download the offline app once — a single file you can verify by checksum and keep forever — or run your own copy from source, and treat this hosted page as the convenience option for low-stakes use. The formats are identical either way.
No, and that's the point. We never receive your passphrase or keys, so there's nothing on our end to recover from. If you lose the passphrase or a private key, the data it protected can't be opened by anyone — including us.
Passphrase locking uses AES-256-GCM with PBKDF2 key stretching (250,000 iterations of SHA-256). Public-key messages use ECDH on curve P-256 into AES-256-GCM. These are standard, widely-audited primitives — the same class of cryptography behind HTTPS and password managers. The full method is in How it works.
Convenience and self-destruction. With a one-time secret there's no separate passphrase to deliver — the link is the secret — and it deletes itself after it's read, so it doesn't linger in an inbox or chat history. Use passphrase encryption when you want the recipient to keep the data; use a one-time secret to hand something over and have it disappear.
No. Opening a one-time-secret link doesn't reveal anything automatically — the recipient has to click "Reveal the secret" first. Automated link unfurlers never take that step, so the secret survives for the human.
There's no fixed limit anymore. Files are encrypted in 4 MB pieces, so even multi-gigabyte files work; in Chrome and Edge the result also streams straight to disk instead of filling memory. The encrypted container hides the original filename too, and restores it when decrypting.
Nothing — they stay yours to open. Encryption happens on your device, so decryption never needed our server in the first place. To make that concrete, the Source & offline app page gives you a single-file offline app to keep with your backups, the full source code (MIT licensed) with instructions to run your own copy, a command-line tool, and a byte-exact format spec anyone can reimplement. The original version of this app is also kept frozen at /files/encrypt/legacy/. The one exception is one-time secret links: they live on the server and burn after reading — by design, they don't outlive it.
No account, ever. To open passphrase or public-key output they can use the matching tool here, the downloadable offline app, or the command-line tool — the container formats are fully documented, so nothing is locked to us. A one-time-secret link decrypts itself when opened.
No. Encryption here exists to protect ordinary people's privacy and security. It isn't a shield for anything unlawful, and misuse isn't welcome. Our design keeps us from seeing your content — which also means we can't and won't manufacture it, but we cooperate with valid legal process to the minimal extent our architecture allows.
Yes — it's part of the same privacy toolkit as the VPN, private search, and data removal. Encryption hides the content of what you store and send; those tools cover the connection, your searches, and your exposure. Together they're the point of J&G Studios: privacy tools run by a person, not sold by a broker.
Here's the uncomfortable truth about every "client-side" web tool, ours included: your browser runs whatever code the server sends that day. If we were hacked, coerced, or turned bad, the page could change and you'd never know. So our standing recommendation is the opposite of lock-in — don't rely on us. Take a copy you control, verify it once, and it can never change under you. Nothing you encrypt depends on this website existing, either.