将 NodeJS 缓冲区转换为整数

Convert NodeJS buffer to integer

我想在 NodeJS 中使用 randomBytes 生成随机数。环顾四周后,我发现了一种将缓冲区转换为整数的方法;

const integer = parseInt(buffer.toString("hex"), 16)

是不是用这个方法有问题。我见过其他使用 buffer.readUIntBE 和其他类似方法的解决方案。我想知道他们比上面的解决方案有什么优势

也许不一定,但是将缓冲区转换为其十六进制字符串表示形式,然后将其解析为数字,至少可以说,这似乎不是很直接且不必要resource-consuming.

缓冲区 read 方法主要执行数字运算(例如 here)并且应该少得多 resource-consuming 同时,在我看来,对于阅读您的人来说更容易解释代码。

function randomUInt32() {
   return crypto.randomBytes(4).readUInt32BE();
}

对比

function randomUInt32() {
   return parseInt(crypto.randomBytes(4).toString("hex"), 16);
}