当前位置: 首页 > 面试题库 >

如何在node.js中进行Base64编码?

夏俊人
2023-03-14
问题内容

node.js是否具有内置的base64编码?

我之所以这样问,是因为final()from crypto只能输出十六进制,二进制或ascii数据。例如:

var cipher = crypto.createCipheriv('des-ede3-cbc', encryption_key, iv);
var ciph = cipher.update(plaintext, 'utf8', 'hex');
ciph += cipher.final('hex');

var decipher = crypto.createDecipheriv('des-ede3-cbc', encryption_key, iv);
var txt = decipher.update(ciph, 'hex', 'utf8');
txt += decipher.final('utf8');

根据文档,update()可以输出base64编码的数据。但是,final()不支持base64。我尝试过,它会破裂。

如果我这样做:

var ciph = cipher.update(plaintext, 'utf8', 'base64');
    ciph += cipher.final('hex');

那我应该用什么解密呢?十六进制还是base64?

因此,我正在寻找一个函数来对加密的十六进制输出进行base64编码。


问题答案:

缓冲区可用于获取字符串或数据片段,并对结果进行base64编码。例如:

> console.log(Buffer.from("Hello World").toString('base64'));
SGVsbG8gV29ybGQ=
> console.log(Buffer.from("SGVsbG8gV29ybGQ=", 'base64').toString('ascii'))
Hello World

缓冲区是全局对象,因此不需要。用字符串创建的缓冲区可以使用可选的编码参数来指定字符串的编码形式。可用toStringBuffer构造函数编码如下:

‘ascii’-仅适用于7位ASCII数据。这种编码方法非常快,如果设置,它将去除高位。

‘utf8’-多字节编码的Unicode字符。许多网页和其他文档格式都使用UTF-8。

‘ucs2’-2字节,小端编码的Unicode字符。它只能编码BMP(基本多语言平面,U + 0000-U + FFFF)。

‘base64’-Base64字符串编码。

‘binary’-一种仅使用每个字符的前8位将原始二进制数据编码为字符串的方法。不建议使用此编码方法,应尽可能避免使用Buffer对象。在将来的Node版本中将删除此编码。



 类似资料:
  • 本文向大家介绍如何使用nodejs对base64进行编解码?相关面试题,主要包含被问及如何使用nodejs对base64进行编解码?时的应答技巧和注意事项,需要的朋友参考一下 轮子, https://www.npmjs.com/package/js-base64

  • 问题内容: 我正在尝试从网上获取图片并使用base64对其进行编码。 到目前为止,我基本上是: 这似乎非常接近解决方案,但我不能完全解决它。它识别数据类型并给出输出: 但是,缓冲区列表“ bl”似乎为空。 提前致谢! 问题答案: BufferList已过时,因为它的功能现在在Node核心中。唯一棘手的部分是将请求设置为不使用任何编码:

  • 问题内容: 我有一个80%分类变量的机器学习分类问题。如果要使用一些分类器进行分类,是否必须使用一种热编码?我可以在没有编码的情况下将数据传递给分类器吗? 我正在尝试进行以下功能选择: 我读了火车文件: 我将类别特征的类型更改为“类别”: 我使用一种热编码: 问题是,尽管我使用的是坚固的机器,但第3部分经常卡住。 因此,没有一种热编码,我就无法进行任何特征选择来确定特征的重要性。 你有什么建议吗?

  • 我有一个80%分类变量的机器学习分类问题。如果我想使用一些分类器进行分类,我必须使用一个热编码吗?我可以不编码地将数据传递给分类器吗? 我试图做以下功能选择: > 我读了火车文件: 我将分类特征的类型更改为“类别”: 我使用一个热编码: 问题是,第三部分经常卡住,尽管我使用的是一个强大的机器。 因此,没有一个热编码,我无法进行任何特征选择,以确定特征的重要性。 你推荐什么?

  • 问题内容: 我正在用Node.js和猫鼬编写一个Webapp。如何对通话结果进行分页?我想要一个与SQL 相当的功能。 问题答案: 在通过Rodolphe提供的信息仔细研究了Mongoose API之后,我想出了以下解决方案:

  • 问题内容: 我想对此进行网址编码: 我需要为此下载一个模块吗?我已经有了请求模块。 问题答案: 您可以使用JavaScript的: