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