Developer Tools
Format, encode, hash and generate, with nothing sent off your machine. 8 free tools.
- JSON Formatter & ValidatorBeautify, minify and validate JSON, with the error line marked.
- Base64 Encode / DecodeEncode text or files to Base64 and decode it back.
- URL Encode / DecodePercent-encode text for URLs, or decode it.
- Password GeneratorRandom passwords from your browser's secure generator.
- UUID GeneratorRandom v4 and time-ordered v7 UUIDs, one or in bulk.
- Hash GeneratorMD5, SHA-1, SHA-256 and SHA-512 hashes of text.
- Color ConverterHEX, RGB and HSL, with a picker and contrast check.
- HTML Minifier & BeautifierCompress HTML for production or indent it for reading.
Before you use them
Notes on developer tools
Encoding, hashing and encryption are different jobs
These three get confused all the time, and the difference matters when you handle passwords or tokens.
| Reversible? | Needs a key? | Use it for | |
|---|---|---|---|
| Encoding (Base64, URL) | Yes, by anyone | No | Moving data safely through text-only channels |
| Hashing (SHA-256) | No | No | Checking that a file or message hasn't changed |
| Encryption (AES) | Yes, with the key | Yes | Keeping data secret |
Base64 makes data about a third bigger, since every 3 bytes become 4 characters, and it hides nothing: anyone can decode it with the Base64 tool. MD5 and SHA-1 are fine for spotting accidental changes but are broken against deliberate collisions, and no fast hash should store passwords. Use bcrypt, scrypt or Argon2 for that.
Small rules that break builds
- JSON (RFC 8259) allows no comments, no trailing commas and only double-quoted strings. The JSON Formatter points to the line where parsing stops.
- In a URL path a space is
%20; in HTML form data it is often+. Decode with the wrong rule and plus signs turn into spaces. - A version 4 UUID has 122 random bits, so collisions are not a practical concern for normal use.
The Password Generator and UUID Generator use the browser's crypto.getRandomValues, the same secure source that web apps use for keys, rather than Math.random.