博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用linux的/dev/urandom文件产生较好的随机数
阅读量:4141 次
发布时间:2019-05-25

本文共 940 字,大约阅读时间需要 3 分钟。

        很多朋友经常用srand/rand产生随机数, 其实这种随机性并不好, 容易遭受攻击(很多时候, 也满足不了需求)。 在本文中, 我们来简要介绍一下利用linux的/dev/urandom文件产生较好的随机数, 直接上代码吧:

#include 
#include
int main(){ int randNum = 0; int fd = open("/dev/urandom", O_RDONLY); if(-1 == fd) { printf("error\n"); return 1; } read(fd, (char *)&randNum, sizeof(int)); close(fd); // 千千万万不要漏, 我曾漏过, 结果好悲剧 printf("randNum is %d\n", randNum); return 0;}

     结果:

[taoge@localhost learn_c]$ ./a.out 
randNum is -1061686095
[taoge@localhost learn_c]$ ./a.out 
randNum is 1768060870
[taoge@localhost learn_c]$ ./a.out 
randNum is -1313095365
[taoge@localhost learn_c]$ ./a.out 
randNum is -1651791231
[taoge@localhost learn_c]$ ./a.out 
randNum is 932742445
[taoge@localhost learn_c]$ ./a.out 
randNum is 1191576271
[taoge@localhost learn_c]$ 
      除了/dev/urandom还, 实际上还有一个/dev/random, 两者是有一些小区别的, 有兴趣的话, 大家可以在网上搜索并了解一下, 我就不再重复啰嗦了。

转载地址:http://rfgvi.baihongyu.com/

你可能感兴趣的文章
如何用matlab求函数的最值?
查看>>
C++头文件中不应该放哪些东西?
查看>>
Tomcat 不支持发行版本 问题
查看>>
mybatis 扫描不到mapper.xml文件或者找不到接口里的方法
查看>>
Error:java: Illegal char <:> at index 4: http:\api.jquery.com
查看>>
查重项目实践记录
查看>>
Python搭建RTMP流媒体服务器,实现网络摄像头的推流,并使用机器视觉模型Yolo-v3实时处理视频、输出分类标签。
查看>>
NGINX的RTMP、M3U8推流设置
查看>>
如何在独显电脑上让PotPlayer输出5.1声道音频到JBL CINEMA 615音响
查看>>
TensorFlow中关于Sess和Graph的坑
查看>>
Kreas中Sequence的使用样例
查看>>
2020亚太杯小记
查看>>
TensorFlow GPU虚拟环境配置(当Spyder无法启动)
查看>>
Python多进程加速大量图片数据集读取
查看>>
TensoRT开发记录
查看>>
美赛latex模板单独修改目录的行间距
查看>>
语义分割模型的优化
查看>>
Mine GTX 1660Ti
查看>>
USB通信协议
查看>>
问题得以解决 qq截图框下的工具栏模拟
查看>>