我正在寻找一种将以另一种语言生成的64位带符号整数转换为Node中的16字节缓冲区的方法。这与加密模块一起使用,因此缓冲区长度需要为16。
我知道Node本身不支持使用64位整数,因此我尝试使用一个名为int64-buffer的npm模块进行此操作,
var Int64BE = require("int64-buffer").Int64BE;
var big = new Int64BE(1966151284357350418);
var iv = big.toBuffer();
console.log('IV Length', iv.length);
这会生成一个缓冲区,但只有8个字节长。我已经在其他语言(例如C#)中看到了此操作,但是我不知道如何在Node中完成此操作。
C#示例:
long ivInt = long.Parse('1966151284357350418');
byte[] iv = BitConverter.GetBytes(ivInt);
这将产生一个16字节的数组,可用于解密。