Node.js是否有内置的Base64编码
我问这个问题的原因是crypto中的final()只能输出十六进制、二进制或ASCII数据。例如:
var cipher=crypto.createCipheriv('des-ede3-cbc',加密密钥,iv);
var ciph=cipher.update(纯文本,'utf8','hex');
ciph+=最终密码('hex');
var decipher=crypto.createDecipheriv('des-ede3-cbc',加密密钥,iv);
var txt=解密.更新(ciph,'hex,'utf8');
txt+=decipher.final('utf8');
根据文档,update()可以输出Base64编码的数据。但是,final()不支持Base64。我试过了,它会断的
如果我这样做:
var ciph=cipher.update(纯文本,'utf8','base64');
ciph+=最终密码('hex');
那么我应该用什么来解密呢?十六进制还是Base64
因此,我正在寻找一个函数来对加密的十六进制输出进行Base64编码
缓冲区可用于获取字符串或数据段并对结果进行Base64编码。例如:
>;console.log(Buffer.from(";Hello World";).toString('base64');
SGVsbG8gV29ybGQ=
&燃气轮机;log(Buffer.from(";SGVsbG8gV29ybGQ=";,'base64')。toString('ascii'))
你好,世界
缓冲区是一个全局对象,因此不需要require。使用字符串创建的缓冲区可以采用可选的编码参数来指定字符串的编码方式。可用的toString和Buffer构造函数编码如下:
“ascii”-仅适用于7位ascii数据。这种编码方法非常简单
快速,如果设置,将剥离高位“utf8”-多字节编码
Unicode字符。许多网页和其他文档格式使用
UTF-8“ucs2”-2字节,小尾端编码的Unicode字符。信息技术
只能编码BMP(基本多语言平面,U+0000-U+FFFF)“base64”-base64字符串编码
“二进制”-对原始数据进行编码的一种方式
仅使用每个字符串的前8位将数据二进制化为字符串
性格此编码方法已弃用,应在中避免使用
尽可能使用缓冲区对象。此编码将被删除
在节点的未来版本中