gpt4 book ai didi

node.js - randomBytes 与 pseudoRandomBytes

转载 作者:IT老高 更新时间:2023-10-28 22:02:47 32 4
gpt4 key购买 nike

在什么情况下可以接受(从安全角度)使用 Node 的 crypto.pseudoRandomBytes而不是加密强的 crypto.randomBytes ?

我认为 pseudoRandomBytes 性能更好,但代价是更可预测 (incorrect),但文档并没有太多关于如何减少的说明——很强大。

具体来说,我想知道我是否可以使用 pseudoRandomBytes 生成 CSRF token 。

最佳答案

事实证明,使用默认的 OpenSSL(与 node 捆绑在一起,但如果您自己构建,则可以使用 configure different engines ),the algorithm to generate random data 对于两者完全相同 randomBytes (RAND_bytes) 和 pseudoRandomBytes (RAND_pseudo_bytes)。

这两个调用之间的唯一区别取决于您使用的 Node 版本:

  • 在 Node v0.12 及之前的版本中,如果熵池尚未播种足够的数据,randomBytes 会返回错误。 pseudoRandomBytes 将始终返回字节,即使熵池没有正确播种。
  • 在 Node v4 及更高版本中,randomBytes 直到熵池有足够的数据后才会返回。这应该只需要几毫秒(除非系统刚刚启动)。

一旦熵池中植入了足够的数据,它就永远不会“耗尽”,因此 randomBytespseudoRandomBytes 之间绝对没有有效区别 一旦熵池满了

由于使用完全相同的算法生成随机数据,因此两次调用之间的性能没有差异(尽管有一次性熵池播种)。

关于node.js - randomBytes 与 pseudoRandomBytes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18130254/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com