密码学基础
一、1.古典密码注重算法(密钥比较简单),如凯撒密码,移位密码,仿射密码, 棋盘密码,培根密码等
凯撒密码示意图:
明文:ab
密文:de
棋盘密码:
明文:ab
密文:11 12
2.现代密码注重密钥
明文+加密算法+密钥=密文
密文+解密算法+密钥=明文
密码攻击的四种方式
惟密文攻击已知加密算法和明文 推出密钥或明文
已知明文 已知明文 推出密钥和加密算法
二·、编码
编码和加密的区别
- 编码:通俗来理解就是将字符编码成计算机理解的语言
- 加密:对数据进行加密,保障数据的保密性
url 主要是在url中也就是网址中进行使用的,%23代表#,%0a代表回车
ascii ASCII (American Standard Code for Information Interchange):美国信息交换标准代码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。只有256个字符不能满足其他国家语言的需求,所以出现其他语言的编码
utf(unicode)统一码,可以表示任意全世界所有国家的字符
utf-8可变长utf编码,所占字节可以根据字符来决定
gbk 关于汉字的编码
base64 一种基于64个可打印字符来表示二进制数据的方法。
加密后的数据多带+和=号,如1编码后:MQ==
三、对称加密
现代加密分为对称加密和非对称加密,对称加密是加解密使用同一个密钥,而非对称加密加解密使用不同公钥。如:RC4,DES,3DES,AES
根据加密对象:
流加密,每次加密通过密钥生一个密钥流,使用密钥流进行加密,如RC4
块加密,把加密和解密序列分成了一个个分组,最后在组装起来,如DES,AES
3DES只要保证第一次和第二次的密钥不同即可
DES加密模式
四、非对称加密
非对称加密有两个密钥,公钥和私钥,私钥是在自己手里的,公钥是传给对方的,用对方的公钥加密,不能通过公钥推出对方的私钥。对称加密算法:RSA,椭圆曲线,dh等
主机A ————》主机B
A用B的公钥加密,B用自己的私钥解密
对称加密优点:
- 加密快
- 结构紧凑 数据原来是1M,加密后1.1M
缺点:
- 密钥管理不方便 很多个人通信就需要穿许多密钥
非对称加密优点:
- 密钥管理方便
缺点:
- 速度慢
- 结构不紧凑 数据加密后空间占用变得很大
对称加密和非对称加密结合,数据用非对称加密,密钥用对称加密传输。
四、数字证书和数字签名
公钥怎么保证是自己的,不被第三方篡改
pki公开密钥体系
ca 中心 (公安局)数字证书包含公钥,还可能被伪造,需要数字签名
数字签名 用私钥签名,验证对方身份
五、hash算法
hash 算法:SHA-1(160),SHA-2,MD5(128),主要用来保证数据的完整性
一些软件,镜像下载,有md5值,防止为被篡改
hash函数特点:
- 单项不可逆
- 定长输出
- 雪崩效应
- 防碰撞
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探