Base64 编码/解码

用于二进制数据传输的 Base64 编码/解码工具

使用说明

🚀 快速开始

  • 在文本框输入内容(文本或 Base64 字符串)
  • 点击“编码”或“解码”按钮开始处理
  • 输入与结果共用同一文本框,可一键复制或清空
  • 需要校验时:编码后切到“解码”验证一致性

📌 常见使用场景

  • URL/JWT:优先使用 URL‑safe 变体(−/_),必要时可移除结尾“=”填充,避免链接转义问题
  • 邮件/MIME:需要换行时采用 MIME 76 列(CRLF)规则;网页传输一般不换行。本工具提供 76 列换行与 LF/CRLF 切换开关
  • 多行文本:开启“逐行编码”,每行独立输出 Base64,便于逐条处理
  • MIME/PEM:开启“按 MIME 76 列换行(CRLF)”;若需 LF 行尾,同时开启“换行使用 LF(\n)”
  • Data URL:嵌入时生成 data:[mime];base64,…;解码会自动截取逗号后的内容
  • 往返校验:编码后立即解码,确认还原一致

🎛️ 编码参数与变体

  • URL‑safe 输出
  • 逐行编码(每行独立编码)
  • 按 MIME 规范每 76 字符换行(CRLF)
  • 换行使用 LF(\n)
  • 自动补齐填充字符(=):长度对齐为 4 的倍数;长度不合法会提示
  • 忽略空白:解码时自动移除换行与空格

🧭 使用建议

  • 统一使用 UTF‑8,避免乱码
  • 默认已采用 URL‑safe;如需标准 Base64,请在设置中关闭
  • 跨系统传递建议移除换行与空白;仅用于展示时再加回
  • 经 Base64 后体积约增 33%,不适合大文件
  • 对接需要标准 Base64 的系统:关闭 URL‑safe(保留 +/ 与 =)
  • 逐行编码会对已编码文本再次编码;如仅需变体转换,请关闭“逐行编码”后再点击“编码”
  • 76 列换行仅影响显示;解码会自动忽略换行与空白

⚠️ 限制与兼容性

  • 超长文本:可能导致浏览器失去响应或崩溃,建议分段处理
  • 二进制:本界面以文本为主;二进制建议用 Data URL 或命令行工具
  • 受浏览器内存限制影响可处理大小

🔒 隐私与安全

  • 所有处理均在您的浏览器内完成,数据不会离开您的设备
  • 安全提示:Base64 为编码,非加密。涉密场景请先加密再编码

❓ 常见问题

什么是 Base64?为什么要“编码”?

Base64 是一种把任意二进制数据安全表示为文本字符的编码方案。它最早用于电子邮件的 MIME 标准(1990 年代,RFC 1521/2045),后来由 RFC 4648 统一规范。目的不是“加密”,而是在以文本为主的系统/协议里可靠携带任意字节。 工作原理:每 3 个字节(24 位)拆成 4 个 6 位块,映射到 A–Z、a–z、0–9、+、/ 共 64 个字符;若源数据不是 3 的倍数,用“=”填充对齐。因此体积通常增加约 33%。 变体与选择:RFC 4648 定义了 URL‑safe 变体,用“-”“_”替代“+”“/”,并可省略结尾“=”。在 URL、Cookie、JWT 等场景推荐使用 URL‑safe;对接传统/MIME 工具链时使用标准 Base64(保留 +/ 与 =)。本工具默认输出 URL‑safe,解码自动兼容两种变体。 示例:??? → 标准为 Pz8/,URL‑safe 为 Pz8_;~~~ → 标准为 fn5+,URL‑safe 为 fn5-。 与 Data URL:当需将数据内嵌到文本(如 HTML/CSS)时,常写作 data:[mime];base64,……;解码时只需截取逗号后的编码部分(本工具会自动处理)。 里程碑(简史):1993 RFC 1521(MIME v1,Ned Freed & Nathaniel Borenstein)→ 1996 RFC 2045(MIME 更新,取代 1521)→ 2003 RFC 3548(Simon Josefsson,抽象 Base16/32/64)→ 2006 RFC 4648(Simon Josefsson,统一标准并明确 Base64URL,废止 3548)。另:1993 RFC 1421(PEM,J. Linn)使用 Radix‑64(与 Base64 同宗)以便邮件中携带二进制。 安全提示:Base64 只是“可逆格式化”,不提供机密性或完整性;敏感信息请先加密再编码。

Base64 是否安全?

否。任何人都可解码;需保密请先加密再编码

为什么提示“无效的 Base64 格式”?

仅允许 A–Z、a–z、0–9、+、/、=,且需满足长度规则

不同工具结果为何不同?

常见差异来自换行处理、是否保留“=”填充、URL‑safe 变体(−/_)以及实现细节。建议统一 UTF‑8、禁用自动换行,并明确是否使用 URL‑safe 及是否保留填充

为何编码后变大?

Base64 以 6 位表示 8 位,约 33% 的膨胀为方法特性

表情符号等特殊字符能处理吗?

使用 UTF‑8 可支持。非文本二进制解码后可能显示为“乱码”

Base64 编码器 - 编码、解码、转换 - CrateX.app