Linux下轻松获取随机数(linux获取随机数)
随机数一般来说是一种有确定算法或运算过程产生的一串无序数字序列,它通常与做出随机决定、模拟研究、彩票、加密学等有关。
在Linux系统下,要获取随机数,有很多种方法,下面让我们对其中两种方法进行简要的介绍:
1、使用/dev/urandom。
/dev/urandom是一系列依赖特殊算法产生的伪随机数,只要把它当作直接使用硬件随机产生的结果即可,它可以独立工作,不受其他程序的干扰。
要使用/dev/urandom获取随机数,可以使用如下代码:
#include
#include
#include
int main(void){
int i, fd, r; fd = open("/dev/urandom", O_RDONLY);
for(i = 0; i read(fd, &r, sizeof(int));
printf("random %d: %d\n", i, r); }
close(fd); return 0;
}
2、使用openssl的rand函数
OpenSSL的rand函数也可以获取随机数,要使用改函数,需要先安装OPENSSL,然后在程序中包含openssl/rand.h头文件,之后调用相关接口即可。
要使用rand函数可以使用如下代码:
#include
int main() { int num[3];
int i = 0; for (i = 0; i
if (1 != RAND_bytes((unsigned char *)&num[i], sizeof(int))) { exit(-1);
} printf("random %d: %d\n", i, num[i]);
} return 0;
}
以上就是在Linux系统中使用/dev/urandom和OpenSSL获取随机数的简要介绍,由于随机数的应用场景极其广泛,本文只是抛砖引玉,更多的使用及应用,请尝试发掘和探索。