JWT Signing Algorithms Explained | JWT Encoder Docs
JWT Signing Algorithms Explained
JWT supports several categories of signing algorithms. Choosing the right one depends on your security requirements.
HMAC (HS256, HS384, HS512)
HMAC algorithms use a shared secret for both signing and verification.
Pros: Simple, fast, no key management | Cons: Secret must be shared securely
Best for: Internal services, single-server applications
RSA (RS256, RS384, RS512)
RSA uses a public-private key pair. The private key signs, the public key verifies.
Pros: Strong security, widely supported | Cons: Slower than HMAC
Best for: APIs where the verifier cannot hold the signing key
RSA-PSS (PS256, PS384, PS512)
A modern variant of RSA with probabilistic signature scheme.
Pros: Better security properties than RS* | Cons: Slightly slower, less library support
ECDSA (ES256, ES384, ES512)
Elliptic Curve Digital Signature Algorithm — smaller keys than RSA for equivalent security.
Pros: Smaller signatures, faster than RSA | Cons: Requires proper random nonce
EdDSA (Ed25519)
Modern Edwards-curve signature algorithm.
Pros: Fast, secure, constant-time | Cons: Newer — fewer libraries support it
Algorithm Security Overview
| Algorithm | Key Size | Security Level | Speed |
|---|---|---|---|
| HS256 | 256+ bits | Medium (symmetric) | Very Fast |
| RS256 | 2048+ bits | High | Slow |
| ES256 | 256 bits | High | Fast |
| EdDSA | 256 bits | Very High | Fast |