logo科技微讯

看源码:Base64Url

作者:科技微讯
日期:2023-07-09
📝 笔记

Base64Url 是 Base64 的一个变体,在 RFC 4648 有定义。

有些人会把一段字符串变成 Base64 之后用在 URL,但 Base64 可能包含 +/= 这几个字符串,当你 encodeURIComponent 这个 URL 时,这些字符会进行百分号编码,例如 + 会被编码为 %2B,这样会增加不必要的长度和阅读难度。如果你不想这样,可以使用 Base64Url。对于 Node.js,社区有一个 base64url 的库可以把字符串转为 Base64Url。

实现方法很简单,就是按照 RFC 4648 对 Base64Url 的定义,把 +/ 分别改为 -_,而 = 可以保留,也可以删了它,base64url 选择删了它。

= 在 Base64 中是一个有点特殊的字符,它总是出现在一段 Base64 的最后,是一个 padding character,因为 Base64 的字符数总是 4 的倍数,不足的部分以 = 补全,如果刚好是 4 的倍数,则没有 =base64url 中的 pad-string 函数,就是用于对 Base64Url 转换为正常字符串时,根据 Base64Url 的长度在末尾增加 =


相关文章:

donation赞赏
thumbsup0
thumbsdown0
暂无评论