Generating random bytes or hex strings gives you unpredictable values for keys, tokens, test data, and salts, written either as raw byte numbers or as a compact hex string. Randomness is the whole point: the value must be impossible to guess. This guide explains where random bytes are used, the difference from a readable ID, and free tools to generate them in your browser.
In this guide
Bytes versus hex strings
A random byte is a number from 0 to 255. A hex string is the same bytes written compactly as two hex digits each, so eight random bytes become a 16-character hex string. The data is identical; hex is just the convenient text form for pasting into code or a config. The byte-to-hex relationship is covered in our text and hex guide.
Generate random bytes and hex
The random bytes generator produces a chosen number of unpredictable bytes, and the random hex generator gives them as a hex string. Both run in your browser, so a key or token you generate is never transmitted, which matters when the value is meant to be secret.
Why the source matters
For anything security-related, the randomness must come from a strong source, not a simple predictable formula. A value that looks random but follows a pattern can be guessed, which defeats a key or token entirely. The distinction between genuine and merely apparent randomness is covered in our randomness guide.
When you want an ID instead
Random bytes are raw values. If you need a standard, structured identifier, a UUID is usually the better choice, since it has a defined format that systems recognize. Our GUIDs and UUIDs guide covers when a formatted ID beats a plain random string, and you can generate one with the GUID generator.
Common uses
Random bytes and hex back a lot of everyday security and testing: encryption keys, session tokens, salts for hashing, nonces, and unpredictable test values. Anywhere a value must be unguessable and unique, generating fresh random bytes is the standard approach, and hex is simply the form that travels well through code and config files.
Free tools used in this guide
Frequently asked questions
What is the difference between random bytes and a hex string?
They are the same data. A byte is a number from 0 to 255, and hex writes each byte as two characters, so the hex form is just compact text.
What are random bytes used for?
Encryption keys, session tokens, salts, nonces, and unguessable test values, anywhere a value must be unpredictable and unique.
Why does the randomness source matter?
Because a value that follows a pattern can be guessed, which defeats a key or token, so security needs a strong random source.
Should I use random bytes or a UUID?
Use a UUID when you need a standard, recognizable ID format, and raw random bytes when you just need an unguessable value.
Are the generated values sent anywhere?
No. They are created in your browser, so a secret key or token never leaves your device.