gpt4 book ai didi

node.js - crypto.randomBytes 熵源耗尽

转载 作者:搜寻专家 更新时间:2023-10-31 22:25:23 24 4
gpt4 key购买 nike

我尝试使用 crypto.randomBytes() 方法生成非常大量(> 1GB)的伪随机数据,但我无法为耗尽的熵源生成异常以查看行为是什么我的应用程序以防出现这种可能的异常。

来自 Node.JS 文档:

Note: Will throw error or invoke callback with error, if there is not enough accumulated entropy to generate cryptographically strong data.

我的问题是:

如何耗尽所有熵源使crypto.randomBytes()产生异常?

最佳答案

简短的回答是 - 你不能

稍微长一点的答案是——这取决于操作系统。我假设你使用 Linux。理论上,可以使用以下脚本轻松耗尽 Linux 中的熵池:

#!/bin/bash

while true; do
# write how much entropy is left
cat /proc/sys/kernel/random/entropy_avail

# drain a little bit
dd if=/dev/random of=/dev/null bs=1 count=1 2> /dev/null
done

运行此脚本最终将阻止使用 /dev/random 而不是 /dev/urandom 的操作。 Urandom 不直接从熵池中读取,它使用 PRNG并使用 /dev/random 每 60 秒重新播种一次(默认情况下)。那么当熵池干涸时会发生什么?没有。 PRNG 不会重新播种,但它仍会生成新数字,只是密码强度较低的数字。

唯一可能抛出此异常的时间是在系统第一次 启动之后。我想这不太可能...当然,其他操作系统可以以不同方式处理这个问题,但只要您使用 Linux,就不必担心这一点。

关于node.js - crypto.randomBytes 熵源耗尽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23458383/

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