function number2base64(n) {
// тут стоит проверить, что n < 2^32
const b = Buffer.alloc(4);
b.writeUInt32BE(n); // записываем число в буфер
return b.toString('base64') // получаем base64 и преобразуем в base64url
.slice(0, 6) // убираем паддинг
.replace(/\+/g, '-') // '+' → '-'
.replace(/\//g, '_'); // '/' → '_'
}
从示例来看,这是来自 32 位 Big-Endian 的 base64,因为它值得在标签中
nodejs
使用Buffer
:实际上,这个数字的真正 base64 看起来像这样:
DN9r/A==
,但在示例中通常称为base64urlJavaScript 语言中有两个函数分别用于对 Base64 格式的数据进行编码和解码:
btoa()
只接受一个字符串,但是你可以在那里传递一个数字,但atob()
它总是会返回一个字符串。资源
资源