Security Tools

Base64 Encoder/Decoder

Encode text to Base64 and decode Base64 back to text. Simple and efficient Base64 encoding/decoding tool for data conversion.

beginner1-2 minutesRuns in your browser
Base64EncodingDecodingData Conversion

Interactive workspace

Inputs stay on your device — nothing is sent to our servers unless you choose to share.

Client-side only
Text charset:
Variant:
Result goes here…

Encode files to Base64

Upload any file to convert it to a Base64 string. Max 100MB.

Click or drag a file here

Maximum file size: 100MB

Results History

No history yet. Process some text to see your history here.

Quick Examples (Click to Use)

Encode Examples

Text: "Hello World"
Base64: SGVsbG8gV29ybGQ=
Text: "123456"
Base64: MTIzNDU2
Text: "Base64 Test"
Base64: QmFzZTY0IFRlc3Q=

Decode Examples

Base64: SGVsbG8gV29ybGQ=
Text: "Hello World"
Base64: MTIzNDU2
Text: "123456"
Base64: QmFzZTY0IFRlc3Q=
Text: "Base64 Test"

Security Notice

  • Base64 encoding is not encryption — it is reversible encoding only
  • All processing runs in your browser; nothing is sent to a server
  • Use the source charset when decoding legacy or non-UTF-8 text
  • Do not decode files from untrusted sources
  • Always use proper encryption for sensitive data

About Base64 Encoding

Base64 is a group of binary-to-text encoding schemes that represent binary data in an ASCII string format. It's commonly used for encoding binary data in email messages, storing complex data in JSON, and embedding images in HTML. Base64 encoding increases the size of the data by approximately 33% due to the encoding overhead.

Documentation

How to use this tool, practical use cases, and technical notes.

The Base64 Encoder/Decoder is designed for speed — most operations complete in under 2 seconds. Here is a detailed walkthrough of every feature and mode available in the tool.

Core Workflow: Encoding Text to Base64

Step 1 — Select the "Encode to Base64" tab The tool opens in Encode mode by default. If you are on the Decode tab, click "Encode to Base64" to switch.

Step 2 — Enter your text Click the "Plain text input" area and type or paste the text you want to encode. The tool accepts any length of text; for very large inputs, consider using Batch mode (see below).

Step 3 — Select the correct charset The default charset is "Auto" (auto-detect). For most modern content, UTF-8 is correct. Use the charset dropdown to select a specific encoding if you know the source encoding. Using the wrong charset will produce valid Base64, but decoding it later with a different charset will produce garbled text.

Step 4 — Choose a Base64 variant Select Standard, URL-Safe, or MIME from the Variant selector:

If you are encoding for...

Use this variant

General use, copy-paste, certificates

Standard

A URL parameter, JWT, filename, or web API

URL-Safe

Email body or MIME attachment encoding

MIME

Step 5 — Click "Encode" The Base64 output appears in the right panel. Click the copy icon to copy it to your clipboard.


Core Workflow: Decoding Base64 to Text

Step 1 — Select the "Decode from Base64" tab

Step 2 — Paste your Base64 string Paste the Base64-encoded string into the input area. The tool validates the input format before decoding. Common signs of invalid Base64: incorrect padding (wrong number of = characters), characters outside the Base64 alphabet, or corrupted whitespace.

Step 3 — Select the charset the original text was encoded with This is critical for non-ASCII content. If you are decoding a string that originally contained Japanese, Russian, or Arabic text, you must select the correct source charset (e.g., Shift_JIS, KOI8-R, ISO-8859-6) or the decoded output will appear as garbled characters (mojibake).

Step 4 — Click "Decode" The decoded output appears. If decoding fails, the tool will display a validation error indicating whether the issue is an invalid character, incorrect padding, or an unsupported variant.


Feature: Live Mode

When Live Mode is enabled, the tool encodes or decodes your input in real time as you type — without requiring you to click the Encode/Decode button. This is ideal for interactive exploration, debugging, and learning how Base64 transforms input character by character.

Live Mode On

Live Mode Off

Results update instantly as you type

Results update only on button click

Best for short inputs (< 10 KB)

Better for large inputs to avoid lag

Useful for learning and debugging

Useful for batch or file processing


Feature: Each Line Separately

When the "Each line separately" toggle is enabled, the tool treats each line of your input as an independent encoding/decoding unit, processing them one by one and outputting a corresponding line in the result.

Example — Encoding a list of API keys separately:

Input (3 lines):          Output (3 Base64 lines):
api_key_prod_abc123       YXBpX2tleV9wcm9kX2FiYzEyMw==
api_key_stage_def456      YXBpX2tleV9zdGFnZV9kZWY0NTY=
api_key_test_ghi789       YXBpX2tleV90ZXN0X2doaTc4OQ==

This is especially useful for bulk processing credential lists, token arrays, or CTF challenge sets.


Feature: Auto-Detect Operation

When "Auto-detect op" is enabled, the tool automatically determines whether your input should be encoded or decoded based on its content:

Input Content

Auto-detected Operation

Plain readable text (e.g., "Hello World")

Encode to Base64

Valid Base64 string (e.g., SGVsbG8gV29ybGQ=)

Decode from Base64

Ambiguous input

Falls back to the selected tab operation


Feature: Batch Mode

Batch mode is designed for processing multiple independent inputs in a single operation. Instead of encoding/decoding one string at a time, you can submit a structured list and receive a corresponding list of outputs. This is ideal for developers processing arrays of values, security researchers working through lists of encoded payloads, or sysadmins handling bulk credential transformations.


Feature: File Upload (Up to 100 MB)

The tool supports encoding any file to Base64 — not just text. Drag and drop a file onto the upload area, or click to browse.

File Type

Common Use Case

Images (PNG, JPEG, GIF, WebP)

Embedding images in HTML/CSS as data URIs

PDF documents

Embedding documents in email or API payloads

Binary executables

Encoding payloads for analysis or transfer

Certificates (.pem, .crt, .der)

Converting DER binary certs to PEM format

JSON / XML configuration files

Encoding configs for environment variable injection

Any binary file

Transferring over channels that only support ASCII

Maximum file size: 100 MB. Files larger than this should be split before encoding, or encoded using command-line tools (see Technical Details section for CLI equivalents).

Important: Encoding a 100 MB file produces approximately a 133 MB Base64 string. Ensure your target system can handle this size before encoding large files.


Feature: Visual Map

The Visual Map provides a character-by-character visualization of how your input text maps to Base64 characters. Each input byte is shown alongside the Base64 characters it produces, with the 6-bit groupings highlighted. This is an exceptional learning aid for understanding the mechanics of Base64 at a bitwise level — ideal for students, CTF players, and developers building encoding pipelines.


Feature: Frequency Analysis

The Frequency view displays the distribution of Base64 characters in your encoded output, showing which characters appear most often. While Base64 frequency analysis is less meaningful than analyzing raw binary or ciphertext, this feature has specific uses:

Use Case

How Frequency Analysis Helps

Detecting encoding anomalies

Unusual character distributions may indicate a non-standard variant or partial corruption

CTF challenge analysis

Some challenges use frequency hints to validate correct decoding

MIME boundary detection

Identifying where Base64 padding clusters in multi-part email content


Feature: Results History

Every encode/decode operation is logged in the Results History panel within your current browser session. Click any historical result to reload it into the tool. History is cleared when you close or refresh the tab — nothing is stored persistently.


Quick Examples Reference

Input Text

Base64 Output (Standard, UTF-8)

Hello World

SGVsbG8gV29ybGQ=

123456

MTIzNDU2

Base64 Test

QmFzZTY0IFRlc3Q=

{"user":"admin","pass":"secret"}

eyJ1c2VyIjoiYWRtaW4iLCJwYXNzIjoic2VjcmV0In0=

<html><body>Test</body></html>

PGh0bWw+PGJvZHk+VGVzdDwvYm9keT48L2h0bWw+

SELECT * FROM users

U0VMRUNUICogRlJPTSB1c2Vycw==