为什么80%的码农都做不了架构师?>>>   

1.C伪随机数,可预测,可用来做加密解密,如

int main()
{ // This program will create same sequence of  // random numbers on every program run  for(int i = 0; i<43; i++) printf(" %d ", rand()%48); return 0;
}
而执行后的结果居然是固定的:
>$ ./seed 7  22  9  19  17  31  10  12  9  13  26  43  2  43  35  22  12  18  4  40  11  8  39  45  38  26  14  19  19  31  41  42  6  18  29  39  1  40  19  10  21  45  21### 加密算法实现
> flag:Flag:{0b172e75-18a0-4d06-a8ec-421775ac12f9}
> key:!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}根据c的伪随机可以预测,按位加密flag:**key[rand() % keysize]*flag[i]%256**

引用一篇文章介绍伪随机数:

srand(unsigned(time(NULL))); //随机种子

int rand_number = rand(); //获得随机数

这里主要涉及到了三个函数,srand(),rand()和time()。

不知道这三个函数是做什么的?MSDN文档中解释了这三个函数的作用:

srand():Sets the starting seed value for the pseudorandom number generator(设置伪随机数生成器的起始种子值)。

它的搭档rand():Generates a pseudorandom number(生成一个伪随机数)。

而time()的解释就更简单了:Get the system time(获得系统时间)。

这三个函数组合在一起,就可以生成随机数。

细心的同学可能会发现这里有一个特殊的词-伪随机数。那么什么是伪随机数呢?

关于伪随机数的概念我就不多说了,大家自行搜索一下就有很多解释,在这里我只说一下自己的理解:

先说一下真随机,真随机也就是我们日常说的随机,一个随机事件的结果是不确定的,比如抛硬币,在正常情况下,抛硬币的结果是不确定的,换句话说,结果是不可预测的。

然后说说伪随机,伪随机是计算机生成随机数的一种方式,计算机不能真正模仿随机事件,而只能通过计算来生成随机数。换句话说,如果我们知道了计算机计算随机数的算法,我们是可以预测伪随机数的。

当然我们得用例子说话。

从上面的讨论我们可以知道,因为rand()产生的数字是伪随机数,所以它一定有一个固定的算法来生成伪随机数,那么算法是固定的,不固定的只有srand()所设置的种子了。

确定了这一点之后,我们就可以做实验验证我们的猜想了。

如果srand()设定的种子是一个固定值会发生什么?

srand(1);

int rand_number = rand();

在我执行了N次之后,结果都是固定的。(大家可以亲自试一试)

这就说明我们的“随机数”就是通过某种算法计算出来的结果,所以要想这个结果发生变化,就需要设定一个不断变化的“种子”。

那么这里也就解释了“种子”的作用-用来给随机数生成器提供一个输入,之后随机数生成器就会使用这个“种子”生成不同的伪随机数。

举个栗子~

如果我们的随机数生成算法是这样的:

rand=1+x;

那么我们的“种子”就是上式中的x,,每当我们输入不同的x,产生的结果rand也就会不同。

至于为什么选择time()作为“种子”嘛,上面说了,这个函数呢,用来获取系统时间,因为系统时间是一直在变化的,就相当于我们随机数的“种子”是在一直变化的,所以每次调用time()函数,都会获得不同的值,这样我们的rand()每次生成的结果也就不一样啦~

最后总结一下这三个函数在生成伪随机数的时候是怎么配合的。

首先,time()获取了系统时间;然后,srand()把获取到的系统时间设置为rand()的“种子”;最后,由rand()通过计算,把“种子”转换为一个数字。

好啦,这篇文章就写到这里了~

欢迎大家访问我的网站:https://bfss.github.io/,如果觉得我的文章帮到了您,可以在网站上点击“支持我”对我进行鼓励哟~(手机端网页在左上角,电脑端网页在右上角)

作者:北方素素

https://www.bilibili.com/read/cv311534

2.隐写术,载荷对信号几乎无影响,跟噪声无法区分。

转载于:https://my.oschina.net/u/1777508/blog/2250494

2018CTF大赛学习相关推荐

  1. vivo软件开发马拉松大赛学习总结

    vivo软件开发马拉松大赛学习总结 后端技术 部署 使用到的docker镜像 MySQL部署 后端项目部署 jenkinsfile swagger配置 跨域解决 其他 后端技术 部署 后端部分是使用d ...

  2. 软件测试技能大赛学习路线(更新与5月27日)

    大纲 目录 大纲 写在开头 阶段0:前期准备 1. 阶段一:环境搭建及系统部署 1.1. 知识点 1.2. 实战 1. 阶段二:单元测试 1.1. 知识点 1.1.2. 代码走查 1.1.3. 白盒测 ...

  3. 预备技能大赛学习总结

    了解了什么是数据挖掘,数据抽取,数据转换,数据清洗 了解了他们之间关系既运用. Python和Pycharm的安装以及他们的之间的关系以及作用 安装了JAVA编译器eclipse 今天不仅学会了安装这 ...

  4. CTF大赛学习第一天!!!(学习中)

    转载于:https://www.cnblogs.com/suhaohao/p/10697846.html

  5. CTF网络安全大赛学习笔记1010

    2017年WannaCry病毒 勒索病毒 撞库:组合信息去爆破你的微信QQ或者各类注册网站,成功率较大. 脱裤:eg 2018年的ACFUN被黑客攻击,提示信息泄露. 暗网:隐匿性 洋葱路由不会被追踪 ...

  6. python 创意编程 全国-关于举办第五届全国青少年创意编程与智能设计大赛的通知...

    各省.自治区.直辖市和新疆生产建设兵团科协青少年科技教育工作机构,青少年科技辅导员协会(科技教育协会): 为深入贯彻落实国务院<新一代人工智能发展规划>的任务要求,向广大青少年普及推广编程 ...

  7. AI英特尔杯公开课:2019.06.27在线直播《研究生人工智能创新大赛—AI赋能,创新引领》课堂笔记和感悟(二)

    AI英特尔杯公开课:2019.06.27在线直播<研究生人工智能创新大赛-AI赋能,创新引领>课堂笔记和感悟(二) 导读      讲解总体不错,知识点比较基础,适合入门,各种主流框架都有 ...

  8. AI英特尔杯公开课:2019.06.27在线直播《研究生人工智能创新大赛—AI赋能,创新引领》课堂笔记和感悟(一)

    AI英特尔杯公开课:2019.06.27在线直播<研究生人工智能创新大赛-AI赋能,创新引领>课堂笔记和感悟(一) 导读      讲解总体不错,知识点比较基础,适合入门,各种主流框架都有 ...

  9. 鸿蒙系统更新法定年龄,超25000位开发者参赛,华为首届鸿蒙开发者创新大赛创意满满...

    5月24日,华为在深圳举办首届HarmonyOS 开发者创新大赛颁奖典礼.大赛成果丰硕,开发者热情远超预期,并产出了多款有创新.有创意.有价值的优秀作品. 华为消费者业务软件部总裁.AI与智慧全场景业 ...

最新文章

  1. C#教程3:基本语言结构
  2. ITFriend创业败局(四):菜鸟CEO的自我修养
  3. html播放切片,[Html/Css]网页切片
  4. celery-01-异步任务模块-解决发送邮件的延时问题
  5. 201521123071 《JAVA程序设计》第七周学习总结
  6. 大公司的老板更专注人,小公司的老板更专注事
  7. UbuntuHelp:AptGet/Howto/zh
  8. C语言:编写一个函数,计算二维数组中的最大元素,数组以指针的方式传递
  9. 【渝粤教育】国家开放大学2018年秋季 0579-22T电路及磁路(2)(一) 参考试题
  10. 在lua的string库和正则表达式
  11. android设置闹钟组件,Android 设置系统闹钟
  12. java 拟合曲线_关于java实现自定义曲线拟合的研究
  13. 万年历(hao123)代码
  14. 【达摩院OpenVI】视频目标渐进式Transformer跟踪器ProContEXT
  15. 战地1 - 概念艺术
  16. linux 中的 ln 命令,Linux中ln命令的用法以及分析
  17. 如何测量两组汇编指令的执行效率
  18. c语言坐标画折线,如何用C语言画折线图
  19. Python3.7,在Anaconda中安装PIL
  20. 视频只有声音没有图像?(收藏)

热门文章

  1. HBase数据快速导入之ImportTsvBulkload
  2. WINDOWS下调用GetTokenInformation的奇怪之处--两次调用
  3. 实例讲解Linux系统中硬链接与软链接的创建
  4. 又拍云再放大招,CDN同时支持HTTP/2和SPDY/3.1协议
  5. 利用Wireshark和OSS的API文档简单实现上传和下载
  6. Win7碎片整理在哪?
  7. 海量数据库的查询优化及分页算法方案
  8. 触手可得的云原生 | 阿里云中间件发布多项新功能
  9. Zabbix 3.2.6通过ODBC监控MySQLOracle
  10. 27. FormPanel类的defaults属性