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

本文共 1005 字,大约阅读时间需要 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://cicsi.baihongyu.com/

你可能感兴趣的文章