02-加密解密实战

加密体系中

可逆加密(已知密文,可以解开明文):对称加密(密钥是同一个),非对称加密(核心是:公钥加密,私钥解密,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()

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值