开发者工具
Base64 编码 / 解码
将文本编码为 Base64 格式,或将 Base64 字符串解码为文本。广泛用于邮件附件、JWT 令牌、数据 URI 及通过文本协议传输二进制数据等场景。
[[ labels.error_invalid ]]
Tips
- Base64 的名称来源于编码使用的 64 种可打印 ASCII 字符(A–Z、a–z、0–9、+、/)。末尾的
=是填充字符,用于将字节数补齐为 3 的倍数。 - JWT(JSON Web Token) 使用 Base64URL(将
+替换为-、/替换为_)对令牌进行编码,以确保 URL 安全。其输出与标准 Base64 略有不同。 - HTML/CSS 中的数据 URI(
data:image/png;base64,iVBOR...)使用 Base64 将资源直接嵌入源代码,无需单独的文件请求。 - Base64 是编码而非加密,任何人都可以立即解码。切勿用它来保护敏感信息。
常见问题
不是。Base64 是编码而非加密。任何人都可以立即解码,无需密钥。如需保护敏感数据,请使用 AES 或 BCrypt 等专用加密算法。
可以。本工具内部使用 UTF-8 编码,可以正确处理任意 Unicode 字符,包括日文、中文和 emoji。
Base64 将每 3 个字节转换为 4 个字符,因此输出比原始数据约大 33%。
邮件附件(MIME)、HTML/CSS 数据 URI(
data:image/png;base64,...)、JWT 认证令牌,以及通过文本 API 传输二进制数据。闲话 ― Base64、电子邮件与 URL 的冲突
Base64 得以普及的最大推手是电子邮件。1970~80 年代的 SMTP 只能处理 7 位 ASCII 文本,二进制附件在传输中会损坏。MIME 通过将二进制数据 Base64 编码为纯文本来解决这一问题,这一机制至今仍用于每封邮件的附件内部表示。
Base64 字符集中包含 + 和 /,而这两个字符在 URL 中有特殊含义。为此,Base64URL(+→-、/→_、无填充)应运而生。JWT 和 OAuth 令牌使用 Base64URL,因此其外观与标准 Base64 略有差异。
将 3 字节二进制转换为 4 个 Base64 字符,意味着输出比输入大约 33%。将大图片嵌入为数据 URI 会显著增大 HTML 文件体积,小图标可以使用,但不建议对大型资源使用。