首页 > 编程知识 正文

用des生成伪随机数的代码,怎么破解伪随机数

时间:2023-05-05 14:30:52 阅读:119900 作者:3422

以下测试环境为Linux(centos7.6 )

计算机产生的随机数为伪随机c语言中与随机数相关的两个函数为rand (和srand ),头文件为stdlib.h

首先,让我们来看看两个函数的原型。

rand ) )返回从0到RAND_MAX的随机整数

srand ) )生成随机数种子

CentOS 7.6中RAND_MAX的最大值与INT_MAX相同

rand (# include stdio.h # include stdlib.hint main ) { for } inti=0; i5; I ) {printf('%dn ',rand ) ); }返回0; }

实验结果表明,多次运行,输出的随机数序列为相同

srand (# include stdio.h # include stdlib.h # include time.hint main ) srand ) (unsigned ) time (null ) ) }; for(intI=0; i5; I ) {printf('%dn ',rand ) ); }返回0; }

srand ) )函数接收参数作为随机数种子。 rand ) )函数使用此随机数种子,并以某种计算方式生成随机数。 在以上的实验中,将时间设为随机数的种类,但由于时间会发生变化,所以在执行多次之后,输出的随机数列不同。 固定随机数种子时,如下所示

# include stdio.h # include stdlib.hint main () {Srand(1}); for(intI=0; i5; I ) {printf('%dn ',rand ) ); }返回0; }

实验结果表明,固定随机数种子后,每次产生的随机数序列相同。 结果表明,rand (与直接使用函数的结果一致,rand )函数的默认随机数种子为1

计算机根据随机数种子生成随机数序列。 如果随机数种子相同,则每次生成的随机数序列都相同。 随机数种子不同,生成的随机数序列就不同。 由此,可以得知伪随机数字的含义。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。