OpenPGP Message Encryptor & Decryptor
Encrypt text or files for supplied public keys, optionally sign, and decrypt locally with explicit signature checks and exact-byte downloads.
Recipients, signing and decryption
Encrypt accepts one or more complete armored public-key blocks. Each recipient can decrypt with the corresponding private key. Sign while encrypting uses the supplied private key and its passphrase. Decrypt needs the recipient private key; supplied public keys are used to check any signatures.
A known signature that fails verification prevents plaintext export. Unknown signers are reported as unverified, not trusted. Require a verified signature also rejects unsigned messages and unknown-only signatures. Verification matches the keys you supplied; it does not establish their owners’ identity.
Text, binary files and limits
Text input is UTF-8; browsers may normalize pasted line endings. Choose File when every original byte matters. Encryption accepts up to 16 MiB of plaintext and decryption up to 24 MiB of encoded input. Decrypted data and decompression are capped at 16 MiB. Binary results show a summary and download the original bytes.
Keys are limited to 1 MiB on file import, at most 20 recipient keys and 1000 key packets. Private-key Argon2 memory is capped at 256 MiB, with a cancellable 60-second operation deadline. Integrity requirements stay enabled. The tool never visits a keyserver or a URL from the input.
Reference
Questions & answers
How does Example handle private keys?
It generates a fresh local demonstration key pair, protected with the displayed example passphrase. In decrypt mode it also creates a matching signed ciphertext. These identities and example settings are for testing.
Why did decryption reject my key or message?
Check the recipient, private-key passphrase, key validity, format and resource limits. Unsupported or unauthenticated legacy containers are not accepted by weakening integrity checks.
Is my input uploaded or saved?
Processing runs in your browser. The tool does not put keys, passwords or content in URLs or local storage, or send them to a processing API. Clear removes visible inputs and outputs; it does not guarantee secure erasure of browser-managed memory.