nodejs中的十六进制到字符串和字符串到十六进制的转换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs中的十六进制到字符串和字符串到十六进制的转换相关的知识,希望对你有一定的参考价值。

我需要使用nodejs 8将数据转换为String到Hex,然后再从Hex转换为String

从Hex到String解码时遇到问题

转换string into hex的代码

function stringToHex(str)
{
    const buf = Buffer.from(str, 'utf8');
    return buf.toString('hex');
}

转换hex into string的代码

function hexToString(str)
{
    const buf = new Buffer(str, 'hex');
    return buf.toString('utf8');
}

我有字符串dailyfile.host

编码输出:3162316637526b62784a5a37697a45796c656d465643747a4a505a6f59774641534c75714733544b4446553d

解码输出:1b1f7RkbxJZ7izEylemFVCtzJPZoYwFASLuqG3TKDFU=

所需的解码输出:dailyfile.host

答案

您还需要使用Buffer.from()进行解码。考虑编写一个高阶函数来减少重复代码的数量:

const convert = (from, to) => str => Buffer.from(str, from).toString(to)
const utf8ToHex = convert('utf8', 'hex')
const hexToUtf8 = convert('hex', 'utf8')

hexToUtf8(utf8ToHex('dailyfile.host')) === 'dailyfile.host'

以上是关于nodejs中的十六进制到字符串和字符串到十六进制的转换的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 crypto-js 和 nodejs 解密

NodeJS:如何将base64编码的字符串解码回二进制? [复制]

C中的十六进制到字符数组

使用 Websockets 和 Nodejs 上传文件

PURE Swift 中的十六进制字符串到字符

python中的十六进制字符串到字节数组