JSON Formatter
Paste messy or minified JSON and get it back pretty-printed with 2-space indentation. The same step tells you whether the JSON is valid.
Generate up to 500 random version 4 UUIDs at once, the 128-bit identifiers used for database keys and other unique IDs. Each one comes from your browser's cryptographically secure random generator.
Updated
Your browser is preparing the tool. It runs 100% locally.
Generate version 4 (random) UUIDs, the 128-bit identifiers often used as database primary keys, one per line and up to 500 at a time. Each comes from the browser's cryptographically secure random generator and has 122 random bits plus 6 fixed bits that mark it as version 4. The odds of two ever colliding are astronomically small. Your browser makes them, so the IDs never leave your device.
Choose how many you need and the tool prints that many random UUIDs, each in the standard 8-4-4-4-12 hexadecimal layout with the version digit fixed at 4. You can paste them straight into code, a database seed, a config file or a test fixture.
Each UUID is generated independently. A version 4 UUID contains no counter, timestamp or machine address, so it reveals nothing about when or where it was made. The newer time-ordered versions sort by creation time; version 4 gives up that ordering in exchange for being completely unpredictable.
The tool calls the browser's built-in crypto.randomUUID where available and otherwise fills the pattern from crypto.getRandomValues. Both use the same cryptographically secure random source, not the ordinary Math.random. It then sets the six bits that mark the identifier as version 4, variant 1.
Those 122 random bits are what make a version 4 UUID unique. There are so many possible values that you could generate a billion a second for decades and still not expect a single collision. That is why many machines can create UUIDs at the same time without checking with each other.
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
4 = version (always 4)
y = variant (8, 9, a or b)
x = random hex digit
122 random bits in totalOnly the version and variant positions are fixed. Every other digit is cryptographically random.
Your browser generates the UUIDs from its own secure random source. The tool requests nothing from a server and sends nothing to one, so no one else sees the values.
A version 4 UUID is pure randomness, with no personal data, timestamp or device identifier inside. Unlike the time-based UUID versions, it doesn't reveal when or where it was created.
| Version | 4 (random) |
|---|---|
| Format | 8-4-4-4-12 hex, 36 characters |
| Random bits | 122 of 128 |
| Randomness | browser crypto (not Math.random) |
| Batch size | 1 to 500 |
| Case | lowercase hex |
| Where it runs | Generated in your browser, never sent to a server |
These are version 4 (random) UUIDs. They are unpredictable and work well as opaque keys, but they have no time ordering, so you can't sort rows keyed by them by creation time. If you need ordering, a time-based version such as version 7 fits better.
Uniqueness is overwhelmingly likely but not mathematically guaranteed. The collision odds are about one in 2 to the power 122, which is negligible. If your system cannot tolerate even a theoretical clash, add a unique constraint in the database as a backstop.
The quality of the randomness depends on the browser's crypto generator, which is designed to be cryptographically secure. The fallback used in older browsers draws from the same secure source, so these IDs are not weak and predictable the way Math.random output would be.
The values are lowercase. The standard treats UUIDs as case-insensitive, but some systems compare them as plain strings, so pick one case and use it everywhere to avoid mismatches.
Each batch is capped at 500. For a larger set, run it again. Batches are independent, so combining them doesn't raise the collision risk in any meaningful way.
Create primary keys without a central counter handing out numbers.
Fill fixtures and mock records with IDs that look like production ones.
Tag a request or log entry so you can follow it across services.
Name uploads or temporary objects so two never share a name.
For time-ordered IDs that keep database rows close together, use a version 7 UUID, which embeds a timestamp. For a short code people can share, a nanoid or your own short-ID scheme is more compact. For a secret token, use a dedicated token generator.
The tool builds version 4 UUIDs (122 random bits) with crypto.randomUUID, the browser's cryptographic source, rather than Math.random. They carry no timestamp or ordering, and the collision odds of about one in 2 to the power 122 are negligible, though not a mathematical guarantee.
Paste messy or minified JSON and get it back pretty-printed with 2-space indentation. The same step tells you whether the JSON is valid.
Encode any text to standard Base64 in your browser, emoji and accented letters included.
Get the MD5, SHA-1, SHA-256, SHA-384 and SHA-512 hashes of any text at once, updated as you type, with a plain note on which ones are still safe for security work.
Decode Base64 back to readable text in your browser, Unicode included, and get a plain error message when the input is broken.
Percent-encode a value so it can sit safely inside a URL. Spaces, ampersands, slashes and other special characters become %-codes, using the browser's encodeURIComponent.
Turn percent-encoded text back into readable characters: %20 becomes a space and %26 an ampersand. It uses the browser's decodeURIComponent.
Generate as many as you need at the top of the page. It runs on this device and needs no account.