ECDSA Key Pair Generator
Generate an elliptic-curve key pair for ECDSA signing or ECDH key agreement over P-256, P-384 or P-521, exported as PEM and JWK, entirely in your browser.
Generated locally by your browser's Web Crypto engine. The private key never leaves this device and is not stored anywhere — copy or download it before you close the tab.
What is the ECDSA Key Pair Generator?
An ECDSA key pair generator creates an elliptic-curve private key and its matching public key. Elliptic-curve keys give the same security as much larger RSA keys, so a 256-bit EC key is roughly as strong as a 3072-bit RSA key.
- P-256, P-384 and P-521 curves covering ES256, ES384 and ES512
- ECDSA signing keys and ECDH key-agreement keys
- PEM output in SPKI and PKCS#8 containers
- JWK output ready to paste into a JWKS document
- Copy and download buttons for every format
- Fully client-side — no key material is uploaded
How to use the ECDSA Key Pair Generator
- 1
Choose ECDSA for signatures or ECDH for key agreement.
- 2
Pick the curve: P-256 for ES256, P-384 for ES384 or P-521 for ES512.
- 3
Click Generate key pair.
- 4
Copy or download the public SPKI PEM and the private PKCS#8 PEM.
- 5
Use the JWK output instead if your library consumes JSON Web Keys.
About the ECDSA Key Pair Generator
The ByteTools ECDSA Key Pair Generator produces elliptic-curve keys over the NIST P-256, P-384 and P-521 curves. Pick ECDSA if you need to sign and verify, or ECDH if you need to derive a shared secret with someone else's public key, and the tool exports both PEM and JWK forms.
Elliptic-curve keys are the modern default for JWTs, WebAuthn, TLS certificates and signed webhooks because they are dramatically smaller and faster than RSA at equivalent strength. P-256 pairs with the ES256 JWS algorithm, P-384 with ES384 and P-521 with ES512.
Everything is computed locally by your browser's Web Crypto engine. The private key is never transmitted, never written to a server and is not retained after the page closes, so download or copy it before you navigate away. If you only need a throwaway pair for a local test, generate it, use it, and let it disappear when you close the tab.
Frequently asked questions
Is ECDSA better than RSA?
For most new systems, yes. A P-256 key gives roughly the security of a 3072-bit RSA key while being far smaller and much faster to sign with. RSA still wins on compatibility with very old software, which is the main reason it survives.
Which curve should I choose for a JWT?
P-256 with ES256 is the standard choice and is supported everywhere. Move up to P-384 or P-521 only if a compliance requirement asks for a higher security level, and check that your JWT library supports the algorithm first.
What is the difference between ECDSA and ECDH keys?
They use the same curves but different operations. ECDSA keys sign data so others can verify it came from you. ECDH keys combine your private key with someone else's public key to derive a shared secret that both sides can compute but nobody watching can.
Why does P-521 sometimes fail to generate?
A small number of browsers, and some hardened environments, do not implement P-521 in Web Crypto. If generation fails, fall back to P-384 or P-256 — both are supported everywhere and are ample for real-world use.
Can I use the JWK output directly in a JWKS endpoint?
Almost. Publish only the public JWK, add a key ID (kid) and typically an alg and use field, then wrap it in a keys array. Never publish the private JWK — it contains the d parameter, which is the secret itself.
Related tools
RSA Key Pair Generator
Generate an RSA public and private key pair at 2048, 3072 or 4096 bits, exported as PEM and JWK. Created in your browser and never uploaded.
JWT Signature Verifier
Verify a JSON Web Token's signature with a shared secret or PEM public key, and check its exp, nbf and iat claims against the clock — all in your browser.
TOTP Code Generator
Generate live TOTP two-factor codes from a Base32 secret with a countdown, previous and next windows, and a ready-made otpauth:// enrolment URI.
SHA-256 Hash Generator
Generate SHA-256 hashes of text or files with the browser's Web Crypto API. 64-character hex digest, uppercase option, instant copy. Free and private.
UUID Generator
Generate 1–100 cryptographically random UUID v4 identifiers at once. Uppercase and hyphen-less options, per-item copy and copy-all. Free UUID generator.