Generate 128–512-bit cryptographic secret keys in hex, Base64, Base64URL, or Base58 using crypto.getRandomValues. Batch up to 20 keys at once.
Every JWT secret, AES session key, HMAC signing key, and OAuth client secret starts the same way: a block of random bytes pulled from the operating system's cryptographic RNG. This tool exposes that primitive directly, with no server and no account, so you can generate production-quality keys in the format your stack expects without reaching for a terminal.
Pick a bit length (128, 192, 256, 384, or 512), choose an encoding, set the batch size (1 to 20), and every value is generated fresh by crypto.getRandomValues. Click Regenerate at any time to get a new set. Each key has its own Copy button, and Copy all appears when you generate a batch of two or more.
+, /, and = padding. Used in HTTP headers, PEM files, and many backend frameworks.+ with - and / with _, and drops padding. Required for JWT payloads, PKCE code verifiers, and any key that appears in a URL or cookie without percent-encoding.Key strength
256-bit is the standard for AES-256, JWT secrets, and session tokens. 512-bit suits HMAC-SHA-512.
Encoding
de79d8a42f3fe55f0c4900ff7c032289120dfebc5664b8eaccf9a2b7a49c71f2Keys are generated entirely in your browser using crypto.getRandomValues — a CSPRNG. Nothing is sent to a server. Never share or commit secret keys; rotate them if they are ever exposed.