如何在 NodeJS 中将缓冲区编码为 Base64
How to encode a Buffer to Base64 in NodeJS
我正在尝试将缓冲区编码为 base64 字符串,但它只是将数组复制粘贴到字符串中而不对其进行编码。
我要编码的缓冲区是:
Uint8Array(16)
0: 120
1: 207
2: 91
3: 215
4: 169
5: 206
6: 208
7: 145
8: 250
9: 19
10: 191
11: 254
12: 154
13: 209
14: 47
15: 122
buffer: ArrayBuffer { byteLength: 16 }
byteLength: 16
byteOffset: 0
length: 16
: Uint8ArrayPrototype { … }
我尝试使用 buffer.toString('base64'),正如您将在下面看到的那样,但它没有用
我为此使用的代码如下:
var buf = Buffer.from([18, 5, 2, 7, 32, 12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
var aesCbc = new aesjs.ModeOfOperation.cbc(key);
var encryptedBytes = aesCbc.encrypt(buf);
console.log(encryptedBytes)
var string64 = encryptedBytes.toString('base64');
console.log(string64)
我期待这样的字符串:
eAnguAGneSD+Y/jOpikpnQ== (it's just an example of a base64 string)
但结果是:
String : 120,207,91,215,169,206,208,145,250,19,191,254,154,209,47,122
感谢您的宝贵时间!
您正在尝试将 Uint8Array 值编码为 base64
,实际上不是缓冲区,您必须使用以下命令从中创建缓冲区:
var encryptedBytes = Buffer.from(aesCbc.encrypt(buf));
encryptedBytes.toString('base64'); // your base64 string
我正在尝试将缓冲区编码为 base64 字符串,但它只是将数组复制粘贴到字符串中而不对其进行编码。
我要编码的缓冲区是:
Uint8Array(16)
0: 120
1: 207
2: 91
3: 215
4: 169
5: 206
6: 208
7: 145
8: 250
9: 19
10: 191
11: 254
12: 154
13: 209
14: 47
15: 122
buffer: ArrayBuffer { byteLength: 16 }
byteLength: 16
byteOffset: 0
length: 16
: Uint8ArrayPrototype { … }
我尝试使用 buffer.toString('base64'),正如您将在下面看到的那样,但它没有用
我为此使用的代码如下:
var buf = Buffer.from([18, 5, 2, 7, 32, 12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
var aesCbc = new aesjs.ModeOfOperation.cbc(key);
var encryptedBytes = aesCbc.encrypt(buf);
console.log(encryptedBytes)
var string64 = encryptedBytes.toString('base64');
console.log(string64)
我期待这样的字符串:
eAnguAGneSD+Y/jOpikpnQ== (it's just an example of a base64 string)
但结果是:
String : 120,207,91,215,169,206,208,145,250,19,191,254,154,209,47,122
感谢您的宝贵时间!
您正在尝试将 Uint8Array 值编码为 base64
,实际上不是缓冲区,您必须使用以下命令从中创建缓冲区:
var encryptedBytes = Buffer.from(aesCbc.encrypt(buf));
encryptedBytes.toString('base64'); // your base64 string