Standard Base64 (RFC 4648)

Published

RFC 4648 section 4 defines the “base64” encoding that most programming languages implement by default: btoa(), PHP’s base64_encode(), Python’s b64encode(), Java’s Base64.getEncoder(), and so on.

Rules

  • Alphabet: A–Z a–z 0–9 + / (see Base64 characters).
  • Padding with = so the length is always a multiple of 4.
  • No line breaks. RFC 4648 says implementations must not add line feeds unless a referring specification (like MIME) explicitly requires them.
  • Decoders must reject characters outside the alphabet unless the referring specification says otherwise.
  • Unused bits in the last character should be zero (canonical encoding); strict decoders may reject non-zero bits.

Validation regex

^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$

This matches every valid padded value, including the empty string. Check your value interactively with the Base64 validator.

  • Base64URL for URLs and tokens
  • MIME for e-mail with line wrapping

Comments (0)

Questions, ideas or a bug in “Standard Base64 (RFC 4648)”? Leave a comment, rate the tool, or reply to others.

No comments yet. Be the first to share your feedback!

Leave a comment

Rate this tool:
Esc
↑ ↓ move↵ openEsc close