首页 > 解决方案 > Javascript:生成n位的随机整数

问题描述

我想为 DH 私钥生成一个 512 位整数。我环顾四周,但找不到任何显示生成特定长度的随机整数的 javascript 资源

标签: javascriptrandomcryptography

解决方案


如此处所示生成 16 个随机 32UInt 怎么。从理论上讲,如果您希望将所有数字放在一起,则可以执行以下操作:

randomNumber = generatedArray.map((partialResult, value) => (partialResult << 32) + value));

但是,请注意 javascriptMAX_SAFE_INTEGER只有 53 位长。

编辑

正如@SamMason 评论的那样,它应该reduce代替map. 此外,由于位移运算符仅定义为适用于 32 位值,我们可以乘以2^32

randomNumber = generatedArray.reduce(
    (partialResult, value) => partialResult * Math.pow(2,32) + value)
);

推荐阅读