Output will appear here
Click in the output to select all text
Output will appear here
Click in the output to select all text
Generate RFC 4122 compliant UUIDs (v4 random, v1 timestamp, NIL, or batch).
Generate strong random passwords or memorable passphrases with a live entropy/strength meter, bulk generation, and ambiguous-character exclusion.
Encrypt or decrypt text with AES-256 using a custom passphrase.
Derive cryptographic keys from passwords using PBKDF2 with custom salt and iterations.
Generate Universally Unique Lexicographically Sortable Identifiers (ULID).
This tool generates cryptographically secure random bytes using your browser's Web Crypto API, with output in Hex, Base64, or Uint8 array format. Truly random bytes are the raw material behind encryption keys, initialization vectors, salts, session tokens, and API secrets — using a weak or predictable random source anywhere in that chain can silently undermine an otherwise strong system, which is why this tool relies on crypto.getRandomValues rather than Math.random. Developers generating AES keys or IVs, engineers seeding salts for password hashing, and anyone who needs guaranteed-unpredictable byte sequences for security-sensitive code will find this useful for quick generation and testing. All randomness is generated and formatted entirely inside your browser — nothing is transmitted to or logged by a server, which matters given that these bytes are often meant to become secret keys. There's no signup and you can choose the exact byte length you need, from a small salt to a full 256-bit key. Pair this with the AES or HMAC tools on this platform if you need to put the generated bytes to immediate use. Scroll down to generate secure random bytes now.
Yes, it uses the browser's crypto.getRandomValues API, which draws from the operating system's cryptographically secure random number generator, unlike Math.random which is not suitable for security purposes.
They're the foundation of encryption keys, initialization vectors (IVs), salts for password hashing, session tokens, and API secrets — anywhere unpredictability is a security requirement.
AES-256 requires exactly 32 bytes (256 bits) of key material; a 16-byte (128-bit) value is typically used for an IV in AES-GCM mode.
Math.random() is a fast, predictable pseudo-random generator designed for simulations and games, not security — its output can potentially be predicted, making it unsafe for keys, tokens, or salts.
Hex represents each byte as two readable characters (doubling the length), while Base64 packs data more compactly (about 1.33x the original length), which is often preferred for tokens embedded in URLs or headers.
No, generation and display happen entirely in your browser via JavaScript; nothing is transmitted to or retained on a server.
A minimum of 128 bits (16 bytes) of true randomness is generally considered sufficient to make brute-force guessing infeasible for most token use cases.