Home › Developer Tools › PGP Key Generator

PGP Key Generator

Create an OpenPGP key pair for encrypted email and signed messages. Choose Curve25519 or RSA, add your name, email, passphrase and expiry, then download the armored public key, private key and revocation certificate. Keys are generated on your device with OpenPGP.js.

Last updated:

Loading OpenPGP.js…
Use at least 4 random words or 14+ characters.
Advertisement
Advertisement

How to use the PGP Key Generator

  1. Enter your name and email. They form the user ID people see when they import your key.
  2. Choose the key type. Curve25519 is fast, modern and the default in GnuPG; RSA 4096 suits very old software.
  3. Set a strong passphrase and an expiry date. You can extend the expiry later with GnuPG.
  4. Press Generate keys. Generation takes under a second for Curve25519 and a few seconds for RSA 4096.
  5. Download all three files: share the public key, keep the private key and revocation certificate somewhere safe and offline.

What you get

FileStarts withWhat to do with it
Public key-----BEGIN PGP PUBLIC KEY BLOCK-----Share it: email signature, website, keyserver (keys.openpgp.org), or send it to people who want to write to you.
Private key-----BEGIN PGP PRIVATE KEY BLOCK-----Import it into your own OpenPGP software and back it up offline. Never send it to anyone.
Revocation certificate-----BEGIN PGP PUBLIC KEY BLOCK----- (with a revocation comment)Keep it offline. Import it only if the key is lost or compromised, then republish your public key.

Each key has a primary key for signing and certifying and a subkey for encryption. For Curve25519 that is an Ed25519 primary key and a Cv25519 (X25519) encryption subkey, the same layout gpg --quick-gen-key creates by default.

Key types compared

TypeSecurity levelPublic key sizeCompatibility
Curve25519~128-bitVery smallGnuPG 2.1+, OpenPGP.js, Thunderbird 78+, Proton, Kleopatra, Sequoia
NIST P-256 / P-384 / P-521~128 / 192 / 256-bitSmallGnuPG 2.1+ and most modern software; preferred by some compliance rules
RSA 3072 / 4096~128 / ~140-bitLargeEverything, including very old PGP versions
RSA 2048~112-bitMediumEverything; considered the minimum today

Using the keys with GnuPG

# import both keys
gpg --import [email protected]
gpg --import [email protected]

# mark your own key as ultimately trusted
gpg --edit-key [email protected] trust quit

# encrypt and decrypt a file
gpg --encrypt --recipient [email protected] notes.txt
gpg --decrypt notes.txt.gpg

# extend the expiry by two years later
gpg --quick-set-expire FINGERPRINT 2y

Frequently asked questions

What is a PGP key pair?

OpenPGP (RFC 4880) uses two keys. The public key is shared so others can encrypt messages to you and verify your signatures. The private key, protected by a passphrase, decrypts those messages and creates signatures. Never share the private key.

Which key type should I choose?

Curve25519 (Ed25519 for signing, Cv25519 for encryption) is the default in GnuPG 2.3+ and gives strong security with tiny keys and fast operations. Choose RSA 3072 or 4096 only if you must exchange messages with very old software that lacks ECC support.

Is it safe to generate PGP keys in a browser?

The keys are created by the open-source OpenPGP.js library, which runs entirely on your device using the browser's secure random number generator. Nothing is uploaded and the page keeps no copy. Close the tab after downloading the keys. For high-value keys you may still prefer to generate them offline with GnuPG.

What is the revocation certificate for?

If your private key is lost or stolen, import the revocation certificate into GnuPG and publish the updated public key. Everyone who refreshes your key will see that it must no longer be used. Store it separately from the private key.

How do I import the keys into GnuPG?

Run gpg --import publickey.asc and gpg --import privatekey.asc. You will be asked for the passphrase when importing or using the private key. Kleopatra, GPG Keychain and Thunderbird have an Import button that accepts the same .asc files.

Should my key expire?

Yes, an expiry date is a safety net: if you lose access to the key, it stops being used automatically. You can extend the expiry at any time while you still have the private key (gpg --edit-key, then expire), so 2 or 3 years is a common choice.

Can I recover a forgotten passphrase?

No. The private key is encrypted with your passphrase and there is no way around it. Write it down or keep it in a password manager, and keep the revocation certificate so you can at least retire the key.

Are all the tools on FreeToolCabin tested for quality and accuracy?

Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.

Related tools

PGP Encrypt / DecryptEncrypt, decrypt, sign and verify PGP messages with your armored keys, entirely offline.RSA Key GeneratorGenerate 2048, 3072 or 4096-bit RSA key pairs as PEM, PKCS#1, JWK or OpenSSH, locally.Password GeneratorCreate strong passwords and passphrases.Text Encryption ToolEncrypt and decrypt text with a password using AES-256-GCM, entirely in your browser.Hash GeneratorGenerate MD5, SHA-1, SHA-256 and SHA-512 hashes of text or files.MD5 Hash GeneratorGenerate MD5 hashes of text, lines or files and verify checksums.SHA-256 Hash GeneratorSHA-256 and HMAC-SHA256 hashes of text, lines or files, in hex or Base64.Base64 Encoder DecoderEncode or decode Base64 text and files, and make data URIs.URL Encoder DecoderPercent-encode or decode URLs, query strings and form data.HTML Entity Encoder / DecoderEscape and unescape HTML entities, named or numeric.Bcrypt Hash Generator & CheckerCreate bcrypt password hashes and check a password against a hash.Binary TranslatorConvert text to binary, hex, octal and back.HMAC GeneratorGenerate and verify HMAC signatures with SHA-256, SHA-512, SHA-1 or MD5.CRC32 Checksum CalculatorCalculate CRC-32, CRC-32C, CRC-16 and Adler-32 checksums of text or large files.JWT DecoderDecode JSON Web Tokens, read the claims and expiry, and verify HS256 signatures.JWT GeneratorCreate and sign HS256, HS384 or HS512 JSON Web Tokens in your browser and verify them.Password Strength CheckerSee how strong a password really is, how long it takes to crack and how to improve it.Caesar CipherEncode and decode Caesar shift ciphers and crack unknown shifts with a ranked brute force.Vigenère CipherEncrypt and decrypt Vigenère and Autokey ciphers, and crack unknown keys with frequency analysis.Atbash CipherEncode and decode Atbash ciphers (A↔Z, B↔Y) in Latin or Hebrew, with a live letter mapping table.ASCII TableFull ASCII code chart 0–255 in decimal, hex, octal, binary and HTML, with search and copy.Unicode Character LookupFind Unicode characters by name or code point and copy them with UTF-8, HTML and code escapes.Punycode ConverterConvert international domain names, emails and URLs between Unicode and xn-- Punycode, in bulk.JSON Escape / UnescapeEscape text for a JSON string, unescape \n and \" back to text, or stringify a whole object.Binary to HexConvert binary to hex instantly with steps and signed mode.Hex to BinaryConvert hex to binary instantly with steps and signed mode.Binary CalculatorAdd, subtract, multiply, divide, AND, OR, XOR and shift binary numbers with decimal values.Hex CalculatorHexadecimal + − × ÷ and AND, OR, XOR, NOT, shifts with decimal and binary equivalents.Base32 Encoder / DecoderEncode and decode Base32 (RFC 4648), Base32hex, Crockford and z-base-32 from text, hex or files.Base58 Encoder / DecoderEncode and decode Base58 and Base58Check (Bitcoin alphabet) from text or hex, with checksum verification.Unicode Escape / UnescapeConvert text to \uXXXX, \u{...}, \x, &#...; or CSS escapes and decode them back.File Hash CheckerGet MD5, SHA-1, SHA-256 and SHA-512 checksums of files and verify them against a hash.TOTP GeneratorGenerate 2FA one-time codes from a secret key, create otpauth QR codes and verify codes.SSL Certificate DecoderDecode PEM SSL/X.509 certificates: subject, issuer, expiry, SANs, key and fingerprints.Argon2 Hash GeneratorHash passwords with Argon2id, Argon2i or Argon2d and verify them against an encoded hash.Base64 to PDFDecode a Base64 string to a PDF with preview and download, or encode a PDF to Base64.Bitwise CalculatorCalculate AND, OR, XOR, NOT and bit shifts at 8–64 bits with a bit grid and all bases.CSR GeneratorCreate a certificate signing request (CSR) and private key with SANs, RSA or ECDSA, in your browser.SHA-512 Hash GeneratorSHA-512 and SHA-384 hashes of text or files in hex or Base64, HMAC and hash verification.SRI Hash GeneratorCreate Subresource Integrity hashes (sha256/384/512) and ready <script> or <link> tags.SSH Key GeneratorGenerate Ed25519 or RSA SSH key pairs in your browser: OpenSSH public key plus private key.String Escape / UnescapeEscape or unescape strings for JavaScript, Java, C#, Python, C, SQL, regex, CSV and shell.UTF-8 Encoder / DecoderConvert text to UTF-8 bytes in hex, decimal, binary, \x or % and decode bytes back to text.UUID Decoder & ValidatorDecode any UUID: version, variant, v1/v6/v7 timestamp and MAC node, plus bulk validation.Base64 to FileDecode Base64 or a data URI to a downloadable file; detects the real file type and previews it.File Encryption ToolEncrypt and decrypt any file with a password using AES-256-GCM, entirely in your browser.Passphrase GeneratorMake strong, memorable diceware passphrases from a 7,776-word list, with entropy in bits.CSR DecoderDecode a PEM certificate signing request: subject, SANs, key size, signature and CA readiness checks.Enigma Machine SimulatorEncrypt and decrypt with a virtual Enigma I, M3 or M4: rotors, rings, plugboard and lampboard.Hex Opacity CalculatorConvert opacity percent to a 2-digit HEX alpha code and full #RRGGBBAA color, with a 0-100% table.Playfair CipherEncrypt and decrypt Playfair ciphers from a keyword, with the 5x5 key square and every digraph step.Pwned Password CheckerCheck if a password appeared in data breaches; only 5 characters of its SHA-1 hash are sent.RSA Encryption ToolEncrypt text with an RSA public key and decrypt it with the private key using RSA-OAEP in your browser.SAML DecoderDecode SAMLRequest and SAMLResponse messages to readable XML, attributes and validity times.SSL Certificate ConverterConvert SSL certificates and keys between PEM, DER, PFX/P12 and P7B in your browser.Checksum CalculatorCompute 8-bit sum, two's complement LRC, XOR/BCC, NMEA, Fletcher and Internet checksums of bytes.PBKDF2 Hash GeneratorDerive PBKDF2 keys from a password, salt and iteration count with SHA-1, SHA-256 or SHA-512.Protobuf DecoderDecode raw Protocol Buffers hex or Base64 without a schema, or add a .proto for field names.XML Escape / UnescapeEscape & < > " ' for XML text and attributes, unescape entities back, or wrap text in CDATA.Binary Search Tree VisualizerInsert, delete and find in BST, AVL and red-black trees with animated rotations and traversals.MongoDB ObjectId to TimestampDecode a MongoDB ObjectId to its creation date, or build ObjectIds from dates for range queries.Quoted-Printable Encoder / DecoderEncode or decode quoted-printable email text (MIME) with UTF-8 and 76-character soft line breaks.Self-Signed Certificate GeneratorCreate a self-signed SSL certificate and key for localhost or dev servers, as PEM or PFX.SHA-1 Hash GeneratorSHA-1 and HMAC-SHA1 of text or files in hex or Base64, plus Git blob hashes and verify.
See all 65 Encoders, Hashes & Crypto →