Awa*_*ais 1 c unix linux random entropy
我试图从/ dev/random收集真正的随机数.这是我的简单代码:
u_char buf[256];
memset(buf, 0, 256);
int dev = open("/dev/random", O_RDONLY);
int nbr = read(dev, buf, 100);
printf("Number of bytes returned : %d\n", nbr);
Run Code Online (Sandbox Code Playgroud)
你可以看到我要求100个随机字节,但是当我运行这个程序时,我总是得到变量nbr的输出,范围是15到30这是可以理解的,因为/ dev/random并不总是有足够的熵但是我的期望是那个在read()时,/ dev/random应该阻塞,直到它将我的缓冲区填充到100个随机字节,在这种情况下不会发生并且程序不会阻塞.我读了/ dev/random的手册页.它说
当熵池为空时,来自/ dev/random的读取将阻塞,直到收集到额外的环境噪声.
这是否意味着/ dev/random只会在熵池为空时阻塞,并且当它有任何数量的数据时是否会阻塞,无论它是否小于所需的字节数?
任何帮助,将不胜感激.
归档时间: |
|
查看次数: |
652 次 |
最近记录: |