Encrypt a message
Paste a recipient's OpenPGP public key, write a message, and get back an ASCII-armored PGP message to email them. Everything runs in this tab using OpenPGP.js; nothing is uploaded anywhere.
1. Recipient's public key
2. Your message
3. Encrypted message
Overview
OpenPGP lets you encrypt a message so that only the holder of a matching private key can read it, and lets that person prove who they are by signing what they send. The format is an open standard — most recently RFC 9580 (2024), which supersedes the older RFC 4880 — so keys and messages made with one compliant tool work with any other. To use this page you need the recipient's public key, which they can safely hand out to anyone; only their private key, which never leaves their own machine, can decrypt what you send them.
Don't have a key yet, or need one for yourself? Generate a keypair with GnuPG (bundled with most Linux distributions; Gpg4win packages it for Windows and GPGTools for macOS), then export the public half and share that — see the command-line section below for the exact commands.
Webmail
Outlook on the web does not speak OpenPGP natively. The straightforward
route with a browser-based mailbox is to encrypt here, then copy the
armored block (the text starting with -----BEGIN PGP MESSAGE-----)
into the body of a new message. The recipient pastes it into their own
OpenPGP-aware client to decrypt. If you'd rather have encryption
happen automatically as you type and read mail in the browser, a
webmail-integrated extension such as
Mailvelope
can manage keys and handle this inline.
GNU/Unix
On Linux, BSD and macOS, GnuPG
(the gpg command) is the standard implementation and reads
the same armored keys and messages this page produces. A short
cheat-sheet:
gpg --full-generate-key
Create your own keypair. Prefers modern defaults over the older gpg --gen-key.
gpg --export --armor <key-id> > public.key
Export your public key to share it — this is the text to paste into this page's key field.
gpg --import recipient.key
Import someone else's public key into your own keyring.
gpg --list-keys
List the keys currently in your keyring, with fingerprints.
gpg --encrypt --armor --recipient <key-id> file
Encrypt a file from the command line instead of this page — produces file.asc.
gpg --decrypt file.asc
Decrypt a message you received, using your own private key.
Email clients
Thunderbird has built-in OpenPGP support since version 78, under Account Settings → End-To-End Encryption — no add-on required (the older Enigmail add-on it replaced is discontinued). Claws Mail supports OpenPGP through its bundled PGP/Core plugin. On any client without native support, generate and manage keys with GnuPG and encrypt or decrypt through it directly, or use a browser extension such as Mailvelope for webmail. The openpgp.org software page keeps a current list of compatible clients.
About this tool
This page encrypts using OpenPGP.js, an open-source (LGPL-3.0+) implementation of the OpenPGP standard in JavaScript, loaded locally from this site rather than a third-party CDN. It only encrypts to a public key you supply; it has no decryption or key-generation function, and never asks for or transmits a private key.