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

#include <stdio.h>
#include <fcntl.h>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, 两者是有一些小区别的, 有兴趣的话, 大家可以在网上搜索并了解一下, 我就不再重复啰嗦了。

利用linux的/dev/urandom文件产生较好的随机数相关推荐

  1. linux误删除 dev disk文件,误删除 linux 系统文件了?这个方法教你解决

    转载于互联网并适当的修改 误删除linux系统文件了?不用急,本文将给你一个恢复linux文件的方法,让你轻松应对运维中的各风险问题.方法总比问题多~ 说在前面的话 针对日常维护操作,难免会出现文件误 ...

  2. linux cat时间段,linux – cat / dev / urandom的输出是多么临时

    来自随机发生器的数据经过几个地方. >它从内核开始.与任何其他随机生成器一样,内核中的随机生成器由确定性随机比特生成器(DRBG)组成,该生成器由熵源播种. Linux使用的DRBG具有回溯阻力 ...

  3. curl http header_利用Linux命令cURL实现文件定时上传到ftp服务器的小程序,实用

    前言 前段时间群里讨论,想实现某个文件定时上传到服务器要怎么来实现.我记得之前做过 一个项目:为高通的iot模组编写FOTA功能:实现模组可以远程下载升级镜像包,实现版本升级功能.并当时使用的一个超级 ...

  4. [转帖]关于 /dev/urandom 的流言终结 | Linux 中国

    关于 /dev/urandom 的流言终结 | Linux 中国 2019年05月05日 14:03:52 技术无边 阅读数 202 版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权 ...

  5. Linux命令解读(一):head -n 80 /dev/urandom | tr -dc A-Za-z0-9 | head -c 22

    head -n 80 /dev/urandom | tr -dc A-Za-z0-9 | head -c 22 (该命令是针对: 微信小程序登录 生成 3rd_session 的命令, 官方推荐 3r ...

  6. 关于 /dev/urandom 的流言终结

    有很多关于 /dev/urandom 和 /dev/random 的流言在坊间不断流传.然而流言终究是流言. 本篇文章里针对的都是近来的 Linux 操作系统,其它类 Unix 操作系统不在讨论范围内 ...

  7. /dev/random和/dev/urandom

    /dev/random和/dev/urandom是unix系统提供的产生随机数的设备,很多应用都需要使用random设备提供的随机数,比如ssh keys, SSL keys, TCP/IP sequ ...

  8. 探秘Linux特殊设备文件:(/dev/null,/dev/zero,/dev/random,/dev/urandom等)

    目录标题 第一章:设备文件简介(Introduction to Device Files) 1.1 设备文件概述(Overview of Device Files) 1.2 设备文件类型(Types ...

  9. Linux中的虚拟设备/dev/null、/dev/zero、/dev/random和/dev/urandom

    Unix/Linux将每一个设备都当成一个文件,放在/dev目录下.这些文件有的对应着一个真实存在的物理设备:有的则代表一个虚拟设备,提供一些特定的功能. 下面介绍三个常用的虚拟设备: /dev/nu ...

最新文章

  1. jquery.datatable能返回数据绑不上_地磁场可以影响人体机能吗?解释有多种,但都不理想...
  2. 微软Hololens设备 浅分析
  3. 有关bbr以及锐速的更新搬运
  4. VS2005工程由Pocket PC 2003 SDK转为WINCE6.0 SDK的问题
  5. style 放入css文件失效_React中使用CSS的7种方式
  6. 利用事件进行窗体间传值
  7. leetcode15 3Sum 从数组中找到三个整数,它们的和为0
  8. leetcode590. N叉树的后序遍历
  9. 高性能HTTP加速器Varnish(管理维护篇)
  10. 数学连乘和累加运算符号_期中复习:小学数学各年级知识点和重点、难点大全!...
  11. php开发环境配置 iis6+php-5.2.1-Win32+mysql-5.0.18-win32+phpMyAdmin-2.7.0-pl2快速安装
  12. 16.UNIX 环境高级编程--网络IPC:套接字
  13. linux中的各种$号 位置参数变量
  14. xlsx文件 wps 可以打开 excel 打不开
  15. 网件路由器设置电子邮件发送日志到QQ邮箱
  16. zedboard 驱动理解
  17. 报表开发工具 Stimulsoft Reports V2022.3.5系列发布!
  18. 戴尔dell工作站5820,通电后电源指示灯白灯长亮-待更新
  19. 《python编程:从入门到实践》文件和异常——百万圆周率,pi_million_digits.txt
  20. 舆情热点产生的背景及原因

热门文章

  1. 使用node获取微信小程序源码
  2. opencv4轮廓的提取与筛选(VS2019 C++)
  3. 语雀批量导出MarkDown文件,指定知识库所有内容
  4. 编程骚操作:Java Web实现网易云音乐播放器,帮你省下会员费
  5. 30个适合女生玩的可爱网站
  6. 2015年斯坦福创业课程-技术驱动的闪电式扩张(Blitzscaling) 18: Airbnb
  7. python 执行ADB命令(附源码)
  8. 开源视频播放器Video.js介绍
  9. eclipse php 乱码怎么解决,怎么解决php eclipse乱码问题
  10. vlayout的简单使用上篇(如何搭建一个简单的vlayout)