Encoding Tools is a browser-based utility for Base64 encoding and decoding, URL percent-encoding, and cryptographic hash generation. Everything runs locally — no data is sent to any server.
What each tab is for
- Base64 — encode binary data or plain text into a safe ASCII string for use in JSON payloads, data URIs, MIME email attachments, or any API that expects Base64 input instead of raw bytes.
- URL Encode — escape special characters in query string values, form fields, or path segments so they transmit correctly over HTTP. Also useful for decoding percent-encoded strings that are hard to read.
- Hash — generate MD5, SHA-1, SHA-256, or SHA-512 digests to verify file integrity, compare checksums, or quickly inspect a string without reaching for a terminal.
Using the Base64 tab
- Select the Base64 tab. The default mode is Encode.
- Type or paste your text into the top field. The Base64 output appears immediately below.
- To decode, click Switch to Decode, then paste a Base64 string into the input field. The original text appears in the output.
- The Switch button also moves the current output into the input field, so you can chain operations without manual copy-pasting.
- Click Copy to copy the result to your clipboard.
The tool uses TextEncoder for proper UTF-8 handling, so non-ASCII characters — including accented letters and emoji — encode and decode correctly.
Using the URL Encode tab
- Select the URL Encode tab. The default mode is Encode.
- Paste the text you want to encode. Characters like spaces, &, =, and ? are converted to their percent-encoded equivalents instantly.
- To decode, click Switch to Decode and paste a percent-encoded string. The readable text appears in the output.
- The Switch button swaps the output back into the input for continued editing.
This tab uses JavaScript's encodeURIComponent and decodeURIComponent, which encode individual query parameter values. Do not paste a full URL here — it will encode the slashes and colons and break the URL structure.
Using the Hash tab
- Select the Hash tab.
- Type or paste the text you want to hash. MD5, SHA-1, SHA-256, and SHA-512 digests are all generated at once after a short debounce.
- Click the Copy icon next to any algorithm to copy that specific hash value.
Choosing a hash algorithm
- MD5 — 128-bit, fast, but cryptographically broken. Fine for file checksums and non-security comparisons only.
- SHA-1 — 160-bit, deprecated for security use. Still common in legacy systems and Git object IDs.
- SHA-256 — 256-bit, secure and widely supported. The right default for most modern use cases.
- SHA-512 — 512-bit, the strongest option here. Use it when you need a larger digest or extra collision resistance.
Frequently asked questions
Is my input sent to a server?
No. All encoding, decoding, and hashing runs entirely in your browser. Nothing leaves your device.
Why does my Base64 output differ from another tool?
Most differences come down to character encoding. This tool encodes text as UTF-8 before applying Base64, which matches the behavior of most modern libraries and APIs.
Can I URL-encode an entire URL?
You can, but the result will not be a valid URL — encodeURIComponent encodes slashes and colons too. Encode only the individual parameter values, not the full address.
Can I reverse a hash back to the original text?
No. Hash functions are one-way by design. There is no way to recover the original input from a digest, which is what makes them useful for integrity checks.
Can I hash a file instead of text?
The Hash tab currently accepts text input only. To hash a file, use shasum or md5 in your terminal, or a dedicated file checksum tool.