Base64 是把任意二进制数据用 64 个可打印字符(A–Z、a–z、0–9、+、/)表示的编码方式,定义在 RFC 4648 中。下面重点说明分步原理。
Base64怎样一步步运算
编码时先把文本按指定字符集(通常 UTF-8)转成字节,再每 3 个字节为一组拼成 24 位,按 6 位一段切成 4 段,每段的数值(0–63)查字符表得到一个字符。最后一组只剩 1 个字节时补 2 个“=”,剩 2 个字节时补 1 个“=”。解码是逆过程:去掉填充,把每个字符还原为 6 位,再每 8 位拼回一个字节。
示例
输入:https://www.123wen.cn/?q=测试
编码结果:aHR0cHM6Ly93d3cuMTIzd2VuLmNuLz9xPea1i+ivlQ==
说明:按 UTF-8 共 31 字节,编码后 44 个字符。
核心要点
- 每 3 字节编码为 4 个字符,编码后体积约增加 33%
- 字符表:0–25 对应 A–Z,26–51 对应 a–z,52–61 对应 0–9,62 是“+”,63 是“/”
- 末尾“=”是填充符,最多 2 个
- URL 安全变体(base64url)把“+”换成“-”、“/”换成“_”,并常省略填充
- Base64 是编码而不是加密,任何人都能解码
乱码排查
解码后乱码的常见原因:原文按 GBK 编码却按 UTF-8 解码;数据被截断;中间经过 URL 传输时“+”变成了空格。逐一排查字符集、长度(是否为 4 的倍数)和特殊字符。
本站的Base64编码工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【Base64 能加密数据吗?】不能。Base64 只是改变数据的表示形式,没有密钥,任何人都能还原。
【Base64 后面的等号是什么?】是填充符。原始数据字节数除以 3 余 1 时补 2 个“=”,余 2 时补 1 个。
【为什么 Base64 后变大了?】每 3 个字节变成 4 个字符,体积约增加三分之一。
文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。
标签: 数码开发