一、概念和作用:
概念:
加密解密:一个信息干扰的过程,保证固定的人才可能看到你的信息。
把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。
作用:
网络信息传输安全涉及很多方面,其中主要有三个要解决的问题:
- 保密性(Confidentiality):信息在传输时不被泄露
- 完整性(Integrity): 信息在传输时不被篡改
- 有效性(Availibility): 信息使用者是合法的
常用加密方式
数据加密方式 | 描述 | 主要解决的问题 | 常用算法 |
---|---|---|---|
对称加密 | 指数据加密和解密使用相同的密钥 | 数据的机密性 | DES AES |
非对称加密 | 也叫公钥加密,指数据加密和解密使用不同的密钥--秘钥对 | 身份验证 | DSA RSA |
单向加密 | 只能加密数据,不能解密数据 | 数据的完整性 | MD5 SHA系列算法 |
二、字符编码
进制
一个字节是计算机内存的最小单位,由8个二进制位组成, 2个16进制组成
F = 0000 1111 = 15
FF = 1111 1111 = 255
十进制 | 十六进制 | 二进制 |
---|---|---|
0 | 0 | 0000 0000 |
1 | 1 | 0000 0001 |
2 | 2 | 0000 0010 |
3 | 3 | 0000 0011 |
4 | 4 | 0000 0100 = 2^2 |
5 | 5 | 0000 0101 |
6 | 6 | 0000 0110 |
7 | 7 | 0000 0111 |
8 | 8 | 0000 1000 = 2^3 |
9 | 9 | 0000 1001=2^3+2^0 |
10 | A | 0000 1010=2^3+2^1 |
11 | B | 0000 1011 |
12 | C | 0000 1100 |
13 | D | 0000 1101=2^3+2^2+2^0 |
14 | E | 0000 1110=2^3+2^2+2^1 |
15 | F | 0000 1111=2^3+2^2+2^1+2^0 |
进制间转换方法
十进制与二进制
>>> bin(255) #十进制转二进制 '0b11111111' >>> int("0b11111111",2) #二进制转十进制 255
十进制与十六进制
>>> hex(255) #十进制转十六进制 '0xff' >>> int("0xff",16) #十六进制转十进制 255
unicode
字符和unicode编号是一一对应的关系,世界上的每个字符都对应着一个unicode编号,根据编号可以进行多种编码。utf-8,utf-16,utf-32...,gbk编码等
# ascii >>> ord("中") 20013 >>> chr(20013) '中' >>> "中".encode("utf-8") #汉字中utf-8编码 b'\xe4\xb8\xad' >>> "中".encode(&#