密码学基础(一)
来源:互联网 发布:农村淘宝村小二 编辑:程序博客网 时间:2024/05/22 14:22
课程内容
- 二进制
- 八进制
- 十进制
- 十六进制
- 进制互转
今天,我们正式开始学习密码学基础的相关知识。
大家有没有认真的查找”密码学知识预热“文档里的相关概念呢?没有也没关系,就是暂时输在了起跑线上嘛。虽然说密码学在比赛中以应用为主,课程比重也较轻,但并不是说它不重要,因为在比赛中,很多时候拿到flag(什么是flag??去百度或者谷歌”CTF中的flag“吧。什么??不会上谷歌??去找帅学长或漂漂学姐帮忙吧)的关键步骤就是密码破译。当你竭尽全力用掌握的web渗透的方法获取到了一段代码时,而这个代码又是一堆奇怪的字符,这可能就需要用到密码破译了。如果你的脑海里没有密码学的相关知识,心里默念MMP并放弃它,是多么可惜啊。
废话少说,我们从最基础的知识开始吧,
进位制
,是一种计数方法。小时候老师教我们写数字:1,2,3,4,5,6,7,8,9,写到10你会发现数字由一位变成了两位,并且老师还会多说一句,这叫”逢十进一“。任意一位计数到10时,9所处那个位置归零,并把前一位加一,如19加1等于20,129加1等于130。其实,这就是十进制。进位计数法可以用有限种数字符号表示所有数值。
二进制
我们日常生活中应用最广泛的就是十进制,但是计算机可不认识十进制,计算机是逻辑电路组成的,它只知道高电位
和低电位
两种状态(也可以简单的理解成为通电
和断电
)。伟大的家们就想到了,既然只有这两种状态,那我们就把高电位表示数字”1“,低电位表示数字”0“,二进制就这样诞生了。现代密码几乎都是用计算机处理的,所以再牛逼的密码在计算机中也是用二进制处理的。
二进制就是”`逢二进一“,从0开始数起就是:0,1,10,11,100,101…10101110001…
八进制
”逢八进一“,有0~7共8个数字,把二进制中的3位数码编成一组就是一位八进制码。
十六进制
计算机里用的较多的还有十六进制,”逢十六进一“。实事上,在解答比赛中的逆向题的过程中,大家看到的几乎都是十六进制。十六进制的前10个数字用0,1,2,3,4,5,6,7,8,9表示,而后6个数字10~15则用大写的英文字母A(代表10),B(代表11),C(代表12),D(代表13),E(代表14),F(代表15)表示。
举个例子:
十进制数字520用上述进制表示为:
二进制:1000001000
八进制:1010
十六进制:208
细心的同学应该发现,这520转换成十六进制后,长的跟十进制一样啊?我怎么区分啊?其实,在实际应用中,最常用的表示十六进制数值的方式是将 ‘0x’ 加在数字前,所以,我们应该把208写成0x208
。
进制互转
关于这四种进制之间的相互转换,我推荐给大家一个地址:
http://www.cnblogs.com/gaizai/p/4233780.html
这里的讲解很详细,也可以结合学校的课本一起看。
小测验:
1.想想看,时钟用的是什么进制呢?
2.将二进制数1111000010.01101分别转换为八进制、十进制和十六进制数。
3.将十进制数137.5分别转换成二进制、八进制。
啰嗦一句:进制转换可以在网上找到大把的工具,很容易算出结果,比赛中一定是优先利用工具求解,但是如果有的同学想考研,那一定要能熟练的写出转换步骤,进制转换可以考研的必备基础呦。
- 密码学基础(一)
- 密码学(一)、基础
- 密码学(一)、基础
- 密码学基础概念(一)
- 密码学学习记录(一)古典密码学
- 密码学简介(一)
- 复习提纲(密码学基础)
- 密码学基础笔记-(1)
- 密码学----基础概念(二)
- 密码学----基础概念(三)
- 浅谈密码学(一)基础知识
- python密码学编程(一)
- 密码学基础
- 密码学基础
- 密码学基础
- 密码学基础
- 密码学基础
- 密码学基础
- 线性代数学习2 线性相关、生成子空间、范数、特征分解
- jQuery操作input值总结
- eclipse报permGen space 异常解决办法
- 【移动】微信公众好网页分享开发
- 通过qemu的snapshot参数,帮助实现虚拟化计算和存储资源的隔离
- 密码学基础(一)
- C++Win764x下做掉PatchGuard教程
- js table动态增删
- List,Set,Map用法以及区别
- PAT---1029
- 欢迎使用CSDN-markdown编辑器
- Maven项目中POM.xml文件内的标签大全详解
- 阿里云服务器的数据库主机名填写127.0.0.1才能正常连接数据库
- Spring Cloud构建微服务架构—配置中心