Tags
htmlweb
Created
Nov 23, 2015 7:16 AM
https://stackoverflow.com/questions/6008047/why-is-base128-not-used
base64 有两种,RFC 4648 和 base64url,auth0 签发的 jwt 和 web push 的 key 都是第二种,不带 /。
https://github.com/tc39/proposal-arraybuffer-base64#but-which-base64
Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个位元为一个单元,对应某个可打印字符。三个字节有24个位元,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示。
例子:编码“Man”
文本 | M | a | n | |||||||||||||||||||||
ASCII编码 | 77 | 97 | 110 | |||||||||||||||||||||
二进制位 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
索引 | 19 | 22 | 5 | 46 | ||||||||||||||||||||
Base64编码 | T | W | F | u |
如果要编码的字节数不能被3整除,最后会多出1个或2个字节,那么可以使用下面的方法进行处理:先使用0字节值在末尾补足,使其能够被3整除,然后再进行base64的编码。在编码后的base64文本后加上一个或两个'='号,代表补足的字节数。
base64 URL:
data:<mime>%3B[option;]base64,<code>