Docomint

Private Message Encoder

Encrypt a message locally in your browser with a passphrase you set, and create a private, unreadable shareable link — AES-256-GCM, no uploads.

🔒 Processed on your device
🔒 Processed locally in your browserNo uploads · No account · No server-side storage
Words: 0 / 500Characters: 0

Share this passphrase with the recipient yourself — by phone, in person, a different message. It is never included in the link, so anyone with only the link cannot decrypt it, and Docomint has no way to recover it either.

Your data stays in your browser

Docomint encrypts your message directly in your browser, using the Web Crypto API and a passphrase you set — not a fixed key built into the app. Your original message is not uploaded to Docomint servers for encryption or decryption, and neither is the passphrase — both only ever exist in your browser's memory, and are cleared when you clear the tool or leave the page.

Encrypting

  1. Your message + your passphrase
  2. Your browser
  3. AES-256-GCM encryption
  4. Encrypted payload (no passphrase inside it)
  5. Shareable Docomint link

Decrypting

  1. Encrypted link + the passphrase, typed in separately
  2. Your browser
  3. AES-256-GCM decryption
  4. Original message

This uses authenticated encryption (AES-256-GCM) with a key derived from your passphrase (PBKDF2), not ordinary URL encoding or Base64 — the encrypted output has no meaningful visual relationship to the original message, and modifying even one character of the encrypted link makes it fail to decrypt rather than silently returning corrupted content. Because the passphrase is never included in the encrypted link, nobody who has only that — including Docomint — can decrypt it; that also means there's no way for Docomint to recover it if the passphrase is lost.

Unlike a plain shareable-text link, this doesn't Base64-encode or URL-encode your message — that would just be reversible obfuscation, readable by anyone who inspects the link. Instead it uses authenticated encryption (AES-256-GCM) with a key derived from a passphrase you choose (via PBKDF2) and a fresh random nonce every time, so the generated link is genuinely unreadable and tamper-evident: editing even one character of it makes decryption fail outright instead of silently returning corrupted text. The passphrase is never included in the link itself — it has to reach the recipient a different way — which is what makes this tool able to say nobody without it, including Docomint, can decrypt the message; a fixed key built into the app couldn't honestly claim that. Need to encrypt something that isn't really a short message — a whole document's worth of text, a config file, anything — with no length limit and no shareable link at all? Use Text Encryptor instead.

Example: A message like "Meet me at 6pm, bring the documents" encrypted with a passphrase becomes a link such as https://docomint.com/en/tools/private-message-encoder#v1.7Nk3Lp1Q... — opening that link and entering the matching passphrase decrypts and displays the original message locally, but the link alone, or the wrong passphrase, reveals nothing.

How it works

  1. Write your message — up to 500 words — and set a passphrase
  2. It's encrypted with AES-256-GCM entirely in your browser, into an unreadable payload keyed by that passphrase
  3. Share the generated link and the passphrase separately — whoever has both can decrypt it locally, and Docomint never sees the message or the passphrase

Frequently asked questions

Is my text uploaded anywhere?

No — Private Message Encoder runs entirely in your browser using JavaScript/WebAssembly. Your text is never sent to a server.

Does this upload my message anywhere?

No. Your message is encrypted directly in your browser using the Web Crypto API and is never sent to a Docomint server, in either plaintext or encrypted form.

Does Docomint store encrypted messages?

No. There's no server-side database for messages — the encrypted payload exists only inside the link you copy and share, and decrypting it happens locally in whoever opens that link's browser.

Can Docomint read my private message?

No. The encryption key is derived from a passphrase you choose, not from anything built into Docomint's app — the passphrase is never sent to Docomint and never appears in the link, so there's no key anywhere for Docomint (or anyone else who only has the link) to use. That's a real change from a fixed-key design: without a passphrase, nobody can decrypt it, including Docomint.

How should I share the passphrase for a private message?

Through a different channel than the link itself — say it on a call, send it in a separate message, or share it in person. If the passphrase travels alongside the link (the same email, the same chat thread), anyone who intercepts one likely has the other too, which defeats the point of encrypting the message in the first place.

What happens if I forget the passphrase?

The message can't be recovered. There's no password reset — Docomint never receives or stores the passphrase, so there's nothing on any server to recover it from. You'd need to encrypt the message again with a new passphrase.

Is this the same as Base64 or URL encoding?

No. Base64 and URL encoding are trivially reversible by anyone — they're not designed to hide content. This tool uses authenticated AES-256-GCM encryption with a passphrase-derived key, so the generated link's payload has no meaningful visual or structural relationship to your original message.

What happens if a private message link is modified or corrupted?

Decryption fails with a clear error rather than showing a corrupted or partial message. AES-GCM authenticates the encrypted data as a whole, so tampering is detected, not silently ignored — the same happens if someone tries the wrong passphrase.

Is a generated private message link permanent?

There's no server-side record to expire — the link decrypts for as long as this tool's encryption format remains supported and you still have the passphrase, with no separate storage lifetime attached to it.

Related tools