Base64URL
2020-04-14 本文已影响0人
又语
Base64URL 对 Base64 标准进行了修改,目的是能够将编码结果用作文件名或 URL 地址。
Base64 存在以下问题:
- 使用
+作为第 62 个字符,使用=作为填充字符。这两个字符在 URL 中都有特殊含义,+是空格,=用于通过查询字符串作为键=值发送数据; - 使用
/作为第 63 个字符,/在 URL 和文件系统中都用作分隔符。
为了解决以上问题,Base64URL 应运而生,Base64URL 采用了和 Base64 一样的算法作为主要标准,在以下几个方面做了稍许调整:
- 将
+替换成了- - 将
/替换成了_ - 不再需要填充字符
- 禁止行分隔符
具体的操作流程:
编码:
- 使用 Base64 编码
- 去除尾部
= - 将
+替换成-,将/替换成_
解码:
- 将
-替换成+,将_替换成/ - 计算
编码长度 % 4- 结果为
0则不处理 - 结果为
2则在字符串尾部添加== - 结果为
3则在字符串尾部添加=
- 结果为
- 使用 Base64 解码