base64
Base64 编解码
演示 Base64 与 Base64URL 的编码规则与填充差异,支持 UTF-8 文本互转。
技术说明
Base64 把每 3 个字节的输入重新划分为 4 个 6 位分组,再映射到 64 个可打印字符上。标准字符表由 A-Z、a-z、0-9 以及 + 和 / 组成。当输入长度不是 3 的整数倍时,用 = 补齐,使输出长度始终为 4 的整数倍。
Base64URL 是面向 URL 场景的变体,把 + 替换为 -、/ 替换为 _,并省略末尾的填充符,避免这些字符在 URL 或文件名中引发歧义。JSON Web Token 的各段就采用这一变体。
需要注意,Base64 只改变数据的表示形式,不提供任何压缩或加密能力,编码后的体积会增大约三分之一。把它当作保密手段是不合适的。
常见问题
- Base64 编码后长度为什么约为原来的 1.33 倍?
- 每 3 个字节编码为 4 个字符,比例为 4/3。加上末尾填充符,长度会向上取整到 4 的倍数。
- Base64URL 与标准 Base64 的区别是什么?
- 字符表不同:+ 与 / 分别替换为 - 与 _;同时通常省略末尾的 = 填充符,以便安全地出现在 URL 路径与文件名中。
- Base64 能用于数据加密吗?
- 不能。它是一种可逆的编码方式,不涉及密钥,任何人都可以直接还原。