- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我尝试使用 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/
我们有一个 WPF 应用程序,允许用户下载加密内容,并且我们希望提供离线解密该内容的功能。我的想法是下载 key 并使用 DPAPI 存储它们,但我在使用熵参数时遇到了问题。 是否有任何方法可以生成熵
在 php.ini 的 session 部分,有一个名为 session.entropy_length 的指令。 我知道它用于使 session ID 的生成“更加随机”。 它如何使 session
在 php.ini 的 session 部分,有一个名为 session.entropy_length 的指令。 我知道它用于使 session ID 的生成“更加随机”。 它如何使 session
我使用决策树算法来解决二元分类问题,目标是最大限度地减少分类的误报(最大化阳性预测值)(诊断工具的成本非常高) 。 有没有办法在基尼/熵分割标准中引入权重来惩罚误报错误分类? Here例如,修改后的基
我想检查我的 std::random_device 实现是否具有非零熵(即非确定性),使用 std::random_device::entropy() 函数。然而,根据至cppreference.co
我在 tensorflow_decision_forests 文档 ( https://github.com/tensorflow/decision-forests ) ( https://www.t
我是一名优秀的程序员,十分优秀!