Skip to content
Palmate Solutions

Data

Base64 Encoder & Decoder (Text & URL-Safe)

Bi-directional Base64 converter supporting both standard RFC 4648 (+ and / with = padding) and URL-safe RFC 4648 §5 (- and _ without padding). Handles full multibyte UTF-8 Unicode payloads with live byte size analytics. 100% client-side execution.

38 chars

How it works

Base64 (RFC 4648) represents binary data in an ASCII string format by translating 24 bits of input (three 8-bit bytes) into four 6-bit chunks. Each 6-bit value indexes into an alphabet of 64 printable characters (A-Z, a-z, 0-9, +, /). If the input byte length is not divisible by 3, padding characters (=) are appended to complete the 4-character block. In URL-Safe Base64 (Base64URL), the characters '+' and '/' are replaced with '-' and '_' respectively to prevent collision with HTTP URL delimiters, and trailing '=' padding is typically stripped. This tool utilizes modern browser TextEncoder and TextDecoder APIs to properly process multibyte UTF-8 characters without Latin1 corruption.

How to use it

  1. Select operation mode: Encode (Text to Base64) or Decode (Base64 to Text).
  2. Choose alphabet standard: Standard RFC 4648 (with +, /, and = padding) or URL-Safe RFC 4648 §5 (with -, _, and stripped padding).
  3. Type or paste your payload into the input editor.
  4. Inspect live character counts, input byte size, output byte size, and conversion ratio.
  5. Copy the result, swap input/output, or download the output payload directly.

Worked Examples

Example 1: Generating HTTP Basic Auth Header Credentials

Worked Example

Combining an API username and password into a standard Authorization header string.

Input Payload

my_api_key:secret_token_12345

Output / Result

bXlfYXBpX2tleTpzZWNyZXRfdG9rZW5fMTIzNDU=

Why this happens: Standard RFC 7617 HTTP Basic Authentication requires the username and password to be concatenated with a colon and encoded in standard Base64.

Example 2: Creating URL-Safe Query Parameter Payloads

Worked Example

Encoding a JSON state parameter to pass inside an OAuth 2.0 redirect URL without percent-encoding.

Input Payload

{"tenant":"ps-india","redirect":"/billing"}

Output / Result

eyJ0ZW5hbnQiOiJwcy1pbmRpYSIsInJlZGlyZWN0IjoiL2JpbGxpbmcifQ

Why this happens: URL-Safe Base64 replaces + and / with - and _ and omits trailing = characters so the payload can be placed directly inside a URL query string without URI percent-encoding issues.

Example 3: Decoding UTF-8 Multilingual Payloads

Worked Example

Decoding a Base64-encoded customer support ticket containing Hindi and Emoji text.

Input Payload

4KSo4KSu4KSm4KWN4KSk4KWHIOKAkyDPn5Kw

Output / Result

नमस्ते — 🚀

Why this happens: Modern UTF-8 TextDecoder correctly reconstructs multibyte unicode characters without broken glyph replacement symbols.

Edge Cases & Failure Modes

Multibyte UTF-8 Unicode Strings (btoa Crash)

The legacy browser `window.btoa()` function throws an InvalidCharacterError when encountering characters outside the Latin1 range (code points > 255, including emojis and non-Latin alphabets).

Handling: Our implementation encodes strings into UTF-8 Uint8Array byte arrays via TextEncoder before mapping to Base64, preventing browser exceptions.

Missing or Truncated '=' Padding on Decode

URL-Safe Base64 often strips trailing '=' characters. Naive decoders fail with syntax errors when padding length % 4 is non-zero.

Handling: The decoder calculates `length % 4` and dynamically restores required '=' padding prior to decoding.

Data Expansion Overhead

Base64 increases data size by approximately 33% (4 bytes emitted for every 3 bytes input).

Handling: The tool displays live byte size counters comparing input to output so developers can monitor payload growth.

Privacy & Local Execution Guarantee

Base64 encoding and decoding executes locally inside your browser memory using native TextEncoder and TextDecoder APIs. Data strings, credentials, and API parameters are never uploaded to our servers or persisted in browser cookies.

Frequently Asked Questions

Is Base64 an encryption algorithm?

No. Base64 is an encoding format, not encryption. It provides zero confidentiality because anyone can decode Base64 data in milliseconds. Never use Base64 to conceal secrets without underlying cryptographic encryption (such as AES-GCM).

Why does URL-Safe Base64 omit padding?

The '=' padding character has special syntactic meaning in URL query strings (separating parameter keys from values). Stripping '=' and substituting '+' and '/' allows clean URL transmission without percent-encoding.

How does Base64 handle emojis and non-English text?

Standard UTF-8 represents characters using 1 to 4 bytes. As long as the encoder translates characters into UTF-8 bytes before Base64 mapping, all emojis and languages decode with 100% fidelity.

What is the maximum payload size this tool can encode?

Because processing occurs in browser RAM, files and text strings up to 50MB convert seamlessly in modern browsers without latency.

Are payloads transmitted to Palmate Solutions servers?

No. All conversions happen entirely inside your local browser JavaScript runtime. Nothing is logged or uploaded.

Next step

Need this wired into a real system?

Estimators and converters help you think. Delivery still needs contracts, environments, and an owner.