nodejs中字节转十六进制和十六进制转字节

bytes to hexadecimal and hexadecimal to bytes in nodejs

我使用

随机生成了 16 个字节
var crypto = require('crypto');
iv   = crypto.randomBytes(16);

如果我console.log iv,它会打印成这样

<Buffer 54 8e 09 f7 03 56 a1 23 75 94 fb e4 89 e3 36 84>

当我使用 iv.toString('hex') 函数时,它打印

548e09f70356a1237594fbe489e33684

现在我想再次将上面的字符串转换回原始字符串,即将 548e09f70356a1237594fbe489e33684 转换为

<Buffer 54 8e 09 f7 03 56 a1 23 75 94 fb e4 89 e3 36 84>

我这样试:-

  var buffer_data = new Buffer(res_iv);
      console.log(buffer_data);

生成错误O/P<Buffer 35 34 38 65 30 39 66 37 30 33 35 36 61 31 32 33 37 35 39 34 66 62 65 34 38 39 65 33 33 36 38 34>

也尝试使用

var convertHex = require('convert-hex'); 

但无法获得所需的输出

有人知道我怎样才能做到这一点吗?

您可以使用 Buffer.from.

var convertHex = Buffer.from('548e09f70356a1237594fbe489e33684', 'hex');
 const buf1 = Buffer.alloc(16, '548e09f70356a1237594fbe489e33684', 'hex');

 // Prints: 

<Buffer 54 8e 09 f7 03 56 a1 23 75 94 fb e4 89 e3 36 84>

 console.log(buf1);

它将打印所需的输出。 @ponury-kostek 谢谢你的想法对我有帮助

@ponury-kostek 回答 (repl.it/HN3e):-

 Buffer.from('548e09f70356a1237594fbe489e33684', 'hex');



 // Prints: 

<Buffer 54 8e 09 f7 03 56 a1 23 75 94 fb e4 89 e3 36 84>