🔐 Base64编码
编码 / 解码 / URL安全
编码 / 解码 / URL安全
Base64是用64个可打印字符(A-Z,a-z,0-9,+,/)表示二进制数据的编码方式。常用于在文本环境中传输二进制数据,如邮件附件、图片嵌入HTML、API认证。
不是。Base64是编码不是加密,任何人都能解码。不要用Base64存储敏感信息。如需加密请用AES等加密算法。
因为Base64把每3个字节(24位)变成4个可打印字符(每字6位),所以编码后长度约为原文的4/3倍,即增长约33%。这是它的固有代价。
标准Base64用"+/"和"=",在URL里会冲突。URL安全版把"+"换"-"、"/"换"_",并去掉末尾的"="填充,这样就能直接放进URL查询参数。
Base64字符串长度必须是4的倍数,且字符必须在{A-Za-z0-9+/}范围内。如果原样不是合法Base64(比如复印件、多了空格),解码就会失败。
Base64分组的最后一段如果不足3字节,就用"="补齐到4的倍数。所以合法的Base64长度一定能被4整除,末尾可能有0-2个"="。
能。中文会先按UTF-8转成字节,再对这些字节做Base64。所以"中文"的Base64和"特定UTF-8字节序列"的Base64是一回事,解码时也要按UTF-8还原成中文。
Base64 的核心是"3个字节→4个字符":把每3个字节(24位)平均切成4个6位的段,每段(6位)对应查表成一个可打印字符。最后一组不足3字节时,用"="补足。
| 字符 | 值 | 字符 | 值 | 字符 | 值 | 字符 | 值 |
|---|---|---|---|---|---|---|---|
| A | 0 | Q | 16 | g | 32 | w | 48 |
| B | 1 | R | 17 | h | 33 | x | 49 |
| C | 2 | S | 18 | i | 34 | y | 50 |
| D | 3 | T | 19 | j | 35 | z | 51 |
整个表就是 A-Z(0-25)、a-z(26-51)、0-9(52-61)、+(62)、/(63)。
它几乎是 Web 开发里最"出镜"的编码方式。
| 类型 | 是否可逆 | 用途 | 例子 |
|---|---|---|---|
| Base64编码 | 可逆(可解码) | 数据传输、展示 | 图片、JWT |
| 哈希(MD5/SHA) | 不可逆 | 校验、指纹 | 文件校验、密码摘要 |
| 加密(AES/DES) | 可逆(需密钥) | 保密传输 | 登录、支付 |
记住一句话:编码=给数据换一种写法,哈希=给数据打指纹,加密=给数据上锁。
| 输入 | Base64(标准) | 说明 |
|---|---|---|
| Hello | SGVsbG8= | 5字节 |
| Hello World | SGVsbG8gV29ybGQ= | 11字节 |
| 中文 | 5Lit5paH | UTF-8编码 |
| A | QQ== | 单字节需补2个= |
1. 输入文本。
2. 选择编码或解码。
3. 复制结果。