Nodejs生成真随机数的简洁方法
·
rdrand-lite.js
现代Intel/AMD CPU 支持内置名为 RDRAND/RDSEED 的 TRNG(真随机数生成)指令,自带通过采用物理热噪声源的随机数生成器。无需任何外部昂贵硬件,即可生成高质量随机数。
本 NPM 模块让您能在 Node.js 中调用这些指令,适用于模拟、分析、游戏等任何需要随机数的场景。
- 开箱即用:无需安装额外构建工具。
安装
npm i rdrand-lite
API
// 导入
const rng = require('rdrand-lite');
// 使用示例
console.log(rng.rdRand32())
console.log(rng.rdRand64())
console.log(rng.rdSeed32())
console.log(rng.rdSeed64())
console.log(rng.normalizeUint32(rng.rdSeed32()))
console.log(rng.normalizeUint64(rng.rdSeed64()))
基础 API
rng.isRrdrandSupported(): number- 返回 1 表示支持 rdrand 指令rng.rdRand32(): uint32- 返回 32 位无符号整数,通过 rdrand 指令生成的随机二进制位rng.rdRand64(): uint64- 返回 64 位无符号整数,通过 rdrand 指令生成的随机二进制位rng.rdSeed32(): uint32- 返回 32 位无符号整数,通过 rdseed 指令生成的随机二进制位rng.rdSeed64(): uint64- 返回 64 位无符号整数,通过 rdseed 指令生成的随机二进制位rng.normalizeUint32(uint32): number- 将 32 位无符号整数归一化为 [0, 1] 区间的浮点数rng.normalizeUint64(uint64): number- 将 64 位无符号整数归一化为 [0, 1] 区间的浮点数
RDSeed 与 RDrand 的区别
- RDRAND:输出从由真随机数生成器种子生成的伪随机数生成器生成的位。
- RDSEED:输出从芯片上的传感器收集到的物理热噪声熵生成的“真”随机位。
更多推荐



所有评论(0)