【发布时间】:2021-04-13 10:57:49
【问题描述】:
我正在寻找一种在Node.js 中生成安全随机数的好方法。我找到并正在使用的一个答案是crypto.randomInt()。这种方法在密码学上安全吗?有更好的选择吗?
【问题讨论】:
标签: javascript node.js random cryptography
我正在寻找一种在Node.js 中生成安全随机数的好方法。我找到并正在使用的一个答案是crypto.randomInt()。这种方法在密码学上安全吗?有更好的选择吗?
【问题讨论】:
标签: javascript node.js random cryptography
加密模块提供加密功能,其中包括一组用于 OpenSSL 哈希、HMAC、密码、解密、签名和验证功能的包装器。
所以是的,假设 OpenSSL 的随机数生成器是安全的,您会认为这是安全的。在非常具体的情况下,操作系统没有提供足够的随机性,这可能意味着 OpenSSL 随机数生成器没有很好地播种。但是,在普通 PC/服务器上,您会希望它是安全的。
与往常一样,您无法使用确定性系统创建熵。因此,您应该始终确保为特定运行时提供良好播种的系统随机数。例如,对于 VM,这通常意味着安装客户端扩展,以便可以访问主机随机池。
【讨论】:
crypto.randomInt() 不接受任何种子。那么如何确保 rng 播种良好?