加密体系中
可逆加密(已知密文,可以解开明文):对称加密(密钥是同一个),非对称加密(核心是:公钥加密,私钥解密,https)
不可逆加密(根据密文无法解密):哈希算法,散列算法,摘要算法,通常用于数字指纹,MD5,SHA
SHA也是摘要算法,与MD5的用法完全一致,差别在于SHA可以有不同的位数设定,强度可以更高
摘要算法的应用场景:
1、数字签名
2、密码
一、Base64编码
base64编码转换过程
转换后每六位一个base64编码
1、由A-Z,0-9,和+/公同构成64个字符的编码
2、在base64编码中,将所有字符按照字符编码转换成二进制,
(二进制和十六进制,在计算机内部是完全等价的,每4个二进制位,对应一个十六进制位,0000->0,1111->F)
3、字母H,对应十六进制位:0X48,(4 8对用的二进制)0100 1000=7,
中文‘你’对应的十六进制为\xe4\xbd\xa0 1110 1000 1011 1101 1010 0000
4、H你=》0100 1000 1110 1000 1011 1101 1010 0000(十六进制转换为二进制) ==》010010 001110 100010 111101 101000 00(base64位编码每六位一个)==》
如果不够整除(整除6)那就补零
# 对文件进行编码,可以方便的将二进制数据在网络上进行传输 def file_encode(): with open('./test.png',mode='rb') as file: data = file.read() print(base64.b64encode(data)) #基于Base64字符串还原成一个文件 def file_decode(): source = '' data = base64.b64decode(source) with open('./test.png', mode='wb') as file: file.write(data) if __name__ == '__main__': # encode() # decode() file_encode()
二、python加密解密实战
1、简单的可逆算法(只针对ASCLL码):
加密过程:大写变小写,小写变大写,数字+1
解密过程:大写变小写,小写变大写,数字-1
2、有张三和李四两个人,
张三的加密算法是:大写字母+2,小写减2,数字不变,
李四的加密算法 是:大小变小写,小写变大写,数字+3.
要求双方在不知道对方加密算法的前提下,双方实现文本的传输,并确保传输过程始终是加密的。
# 对文件进行编码,可以方便的将二进制数据在网络上进行传输
def file_encode():
with open('./test.png',mode='rb') as file:
data = file.read()
print(base64.b64encode(data))
#基于Base64字符串还原成一个文件
def file_decode():
source = ''
data = base64.b64decode(source)
with open('./test.png', mode='wb') as file:
file.write(data)
if __name__ == '__main__':
# encode()
# decode()
file_encode()