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