`crypto.randomInt()` 加密安全吗?

Rak*_*irm 3 javascript random cryptography node.js

我正在寻找一种在Node.js. 我找到并正在使用的一个答案是crypto.randomInt()。这种方法在加密上安全吗?有更好的选择吗?

Maa*_*wes 7

crypto 模块提供加密功能,其中包括一组 OpenSSL 散列、HMAC、密码、解密、签名和验证功能的包装器。

所以是的,假设 OpenSSL 的随机数生成器是安全的,您会期望这是安全的。在非常特殊的情况下,操作系统无法提供足够的随机性,这可能意味着 OpenSSL 随机数生成器的种子没有很好。然而,在普通的 PC/服务器上,您会期望它是安全的。

与往常一样,您无法使用确定性系统创建熵。因此,您应该始终确保种子良好的系统随机数可用于特定的运行时。例如,对于虚拟机来说,这通常意味着安装客户端扩展,以便可以访问主机随机池。

  • 创建自己的熵非常具有挑战性 - 基本上最好还是依赖系统提供的随机数生成器。您基本上可以做的唯一一件事就是验证各种软件组件的安装是否已正确执行。因此,操作系统和所使用的 OpenSSL 库**应该正确配置(例如编译标志)。 (2认同)