【发布时间】:2020-03-13 18:20:28
【问题描述】:
很好奇crypto.getRandomValues(new Uint32Array(1))[0] / lim 表达式是否可以为负数。
我正在转换的代码在其周围放置了一个 Math.abs 包装器,但我们中的一些人认为它不可能为负数,所以只是想看看其他人的想法?
var lim = Math.pow(2, 32) - 1;
crypto.getRandomValues(new Uint32Array(1))[0] / lim);
这是有关更多上下文的相关问题: Converting getRandomValue.browser from cuid to Typescript?
该库有一个getRandomValue() nodejs 函数,如下所示:
import * as crypto from "crypto"
var lim = Math.pow(2, 32) - 1;
export function getRandomValue () {
return Math.abs(crypto.randomBytes(4)
.readInt32BE(0) / lim)
}
我认为对于浏览器,Math.abs 调用被保留,尽管它似乎没有必要,而且很可能是不正确的。
【问题讨论】:
标签: javascript node.js typescript cryptography cryptojs