加密解密/编码
Base64 编码解码
Base64 是一种基于 64 个可打印字符来表示二进制数据的编码方式,常用于在文本协议中传输二进制数据。 编码:将任意数据转为 A-Z、a-z、0-9、+、/ 共 64 个字符组成的字符串 解码:将 Base64 字符串还原为原始数据 URL 安全模式:将 + 替换为 -,/ 替换为 _,去除 = 填充
加密解密/编码
两者的编码算法完全相同,差别只在字符表:标准 Base64 用 + 与 /,Base64URL 把它们换成 - 与 _,并去掉末尾的 = 填充。因此同一段文本的两种结果长度会差几位,而且不能拿标准解码器直接解 Base64URL 的结果。
| Base64 编码解码 | Base64URL 安全转换 | |
|---|---|---|
| 第 62、63 个字符 | + 与 / | - 与 _ |
| 末尾 = 填充 | 补齐到 4 的倍数 | 一律不带 |
| 放进 URL 会怎样 | + 被当成空格,/ 被当成路径分隔符 | 原样可用 |
| 典型使用者 | JSON 里的二进制字段、邮件编码 | JWT 的 header 与 payload、Cookie |
Base64 是一种基于 64 个可打印字符来表示二进制数据的编码方式,常用于在文本协议中传输二进制数据。 编码:将任意数据转为 A-Z、a-z、0-9、+、/ 共 64 个字符组成的字符串 解码:将 Base64 字符串还原为原始数据 URL 安全模式:将 + 替换为 -,/ 替换为 _,去除 = 填充
Base64URL 是 Base64 的 URL 安全变体,主要用于 JWT 等需要在 URL 中传输的场景。 将 + 替换为 - 将 / 替换为 _ 去除尾部 = 填充
先看你把结果放进哪里:URL、Cookie、JWT 用 URL 变体,其余用标准 Base64。解码方向也要对上——用标准解码器解 base64url 会报非法字符。