有人能解释这种行为吗?
Buffer.from('5d9RAjZ2GCob-86_Ql', 'base64url').toString('base64url')
// 5d9RAjZ2GCob-86_Qg
请仔细看最后一个l - g
字
有人能解释这种行为吗?
Buffer.from('5d9RAjZ2GCob-86_Ql', 'base64url').toString('base64url')
// 5d9RAjZ2GCob-86_Qg
请仔细看最后一个l - g
字
字符串长度为18个字符,每个字符编码6位.这意味着前16个字符代表96个字节,后两个代表一个字节加上4个未使用的位.这里只有最后一个字符的前两位是有效的.g
等于g
000,l
等于g
l
.由于没有使用最后4个字符,g
只是两位1 0的首选.
因此,对于g
到v
之间的任何字符,当您将其转换回Base64Url时,都会得到g
.