参考书籍《Python 3 反爬虫原理与绕过实战》
简单来讲Base64就是用64个可打印字符来表示8位二进制数据。’=‘ 只是为了补全编码后的字符数为4的整数
A-Z
a-z
0-9
+
/
它是网络中常见的编码方式,它的出现是为了解决不可打印的字符在网络传输过程中造成的乱码现象。Base64编码时所用的对照表是固定的,它的编码过程是可逆的。伪加密。
例子:
"""
CSDN: 抄代码抄错的小牛马
"""
import base64
s = "你好"
encrypt = base64.b64encode(s.encode('utf-8'))
print("加密的结果:", encrypt)
# 解密
decrypt = base64.b64decode(encrypt).decode("utf-8")
print("解密的结果:", decrypt)
MD5 消息摘要算法是一种被广泛使用的散列函数,MD5 不可逆。它被广泛的应用于密码存储、检验信息等场景。
例子:
"""
CSDN: 抄代码抄错的小牛马
"""
import hashlib
data = "你好吗"
md5Data = hashlib.md5(data.encode('utf-8')).hexdigest()
print(md5Data)
# 7c62edd327b79f9b44c5142675e39d0b
加密和解密时使用同一个密钥的方式叫对称加密
,使用不同密钥的是非对称加密
,相对于非对称加密来说,对称加密的速度更快,速度的优势使得它更适合大量数据加密的场景。
Python中的AES加密
python实现AES加密、解密
大概格式:
# 加密
def getAesString(data, key0, iv0):
data = pad(data)
key = key0.encode('utf-8')
mode = AES.MODE_CBC
iv = iv0
print('key1', key)
print('mode', mode)
print('i_v', iv.encode("utf-8"))
print('============================')
print(len(data))
# 创建加密对
AES_obj = AES.new(key, mode, iv.encode("utf-8"))
# 完成加密
AES_en_str = AES_obj.encrypt(data.encode("utf-8"))
# 用base64编码
AES_en_str = base64.b64encode(AES_en_str)
# 最后将密文转化成字符串
AES_en_str = AES_en_str.decode("utf-8")
return AES_en_str
pass
这种加密方式需要用到两个密钥:公钥
和 私钥
。 公钥与密钥是一对的,如果用该公钥对数据进行加密,那么只有用对应的私钥才能够完成解密数据。反之即可。在非对称加密算法中,应用最广泛、强度最高的是RSA算法。
python中rsa非对称算法(包含分段加解密分析)
RSA非对称加密解密、签名验签
解密: