A simple offline-capable toolkit for generating OpenPGP keys, encrypting and decrypting messages, signing text and files, and verifying signatures.
openpgp.min.js.
Nothing is uploaded to a server.
For sensitive use, open this site in a private/incognito browser window and disconnect from the internet.
Or download the full folder and run it locally offline on your device.
Check that a downloaded file was signed and not modified.
PGP is a system for protecting messages and files. It can be used for two main purposes:
OpenPGP uses a key pair:
Your private key should be protected with a strong password.
Simple summary: PGP is the idea, OpenPGP is the standard, GPG is a program.
Use Generate Key Pair to create your private key and public key. Keep the private key secret. Share the public key with people who need to encrypt messages to you or verify your signatures.
To send a private message to someone, use their public key. Only their private key can decrypt it.
When someone sends you an encrypted message, use your private key and password to decrypt it.
Signing proves that a message was created by the holder of the private key. It does not hide the message.
Use the sender's public key to check whether the signed message is valid and unchanged.
A file signature creates a separate .asc file. The original file is not changed.
For software downloads, especially security-sensitive software, verify the file using the developer's public key and the matching signature file before running it.
File signatures are important for security-sensitive downloads such as crypto wallets, password managers, encryption tools, operating system images, and software installers.
A valid OpenPGP signature can help confirm that:
Purpose: create a new password-protected private key and matching public key.
Purpose: encrypt text so only the recipient can read it.
Purpose: decrypt a message that was encrypted to your public key.
Purpose: create a clear-signed text message that others can verify.
Purpose: verify that a signed text message is authentic and unchanged.
Purpose: create a detached armored signature for a local file.
.asc signature file.Purpose: verify a detached signature for a downloaded file.
.asc or .sig signature.openpgp.min.js from a CDN for sensitive use. Keep it local in the JS folder.