在模拟登录的时候,会遇到前端向后端发送的报文是加密的情况,
常见的有对称加密,非对称加密;
对称加密的Key很难拿到
非对称加密的方式,还是比较好解决的
pip install pycryptodome
from Crypto.Cipher import PKCS1_v1_5
from Crypto.PublicKey import RSA
第一步 获取publicKey
获取publicKey的获取方式视情况而定,最简单的是有一个接口专门返回publicKey
RSA密钥有固定的格式
-----BEGIN RSA PUBLIC KEY------
************************************************
-----END RSA PUBLIC KEY------
如果你拿到的publicKey 不是这样,记得在前后位置加上
publicKeyStr = f"-----BEGIN RSA PUBLIC KEY------\n{publicKey}\n-----END RSA PUBLIC KEY------"
第二步 处理加密字符串(大多情况下就是密码了)
# RSA 加密的流程
password = "******"
text = password.encode("utf-8")
cipherPublic = PKCS1_v1_5.new(RSA.importKey(publicKeyStr))
textEncrypted = cipherPublic.encrypt(text)
textEncryptedBase64 = base64.b64encode(textEncrypted).decode()
第三步 发送请求
没什么好说的
requests.post(url,json={"username":"****","password":textEncryptedBase64})