`crypto.randomInt()` 在密码学上是安全的吗?
Is `crypto.randomInt()` cryptographically secure?
我正在寻找一种在 Node.js
中生成安全随机数的好方法。我找到并正在使用的一个答案是 crypto.randomInt()
。这种方法在密码学上是安全的吗?还有更好的选择吗?
The crypto module provides cryptographic functionality that includes a set of wrappers for OpenSSL's hash, HMAC, cipher, decipher, sign, and verify functions.
所以是的,假设 OpenSSL 的随机数生成器是安全的,您会认为这是安全的。在 非常具体 的情况下,OS 没有提供足够的随机性,这可能意味着 OpenSSL 随机数生成器没有很好地播种。但是,在普通的 PC / 服务器上,您希望它是安全的。
一如既往,您无法使用确定性系统创建熵。因此,您应该始终确保为特定的运行时提供一个播种良好的系统随机数。对于 VM,这通常意味着安装客户端扩展,例如,以便可以访问主机随机池。
我正在寻找一种在 Node.js
中生成安全随机数的好方法。我找到并正在使用的一个答案是 crypto.randomInt()
。这种方法在密码学上是安全的吗?还有更好的选择吗?
The crypto module provides cryptographic functionality that includes a set of wrappers for OpenSSL's hash, HMAC, cipher, decipher, sign, and verify functions.
所以是的,假设 OpenSSL 的随机数生成器是安全的,您会认为这是安全的。在 非常具体 的情况下,OS 没有提供足够的随机性,这可能意味着 OpenSSL 随机数生成器没有很好地播种。但是,在普通的 PC / 服务器上,您希望它是安全的。
一如既往,您无法使用确定性系统创建熵。因此,您应该始终确保为特定的运行时提供一个播种良好的系统随机数。对于 VM,这通常意味着安装客户端扩展,例如,以便可以访问主机随机池。