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:输出从芯片上的传感器收集到的物理热噪声熵生成的“真”随机位。
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐