爬虫逆向实战(42)-某巢登陆(AES、MDRSA、滑块验证码)
由于原始代码已经非常完整,下面是一个简化的核心函数示例,展示如何使用PyCryptodome库实现AES和MD5加密:
from Crypto.Cipher import AES
from Crypto.Hash import MD5
from Crypto.Random import get_random_bytes
import base64
# AES加密
def aes_encrypt(key, data):
iv = get_random_bytes(AES.block_size)
cipher = AES.new(key, AES.MODE_CBC, iv)
return base64.b64encode(iv + cipher.encrypt(data)).decode('utf-8')
# AES解密
def aes_decrypt(key, data):
data = base64.b64decode(data)
iv = data[:AES.block_size]
cipher = AES.new(key, AES.MODE_CBC, iv)
return cipher.decrypt(data[AES.block_size:]).decode('utf-8')
# MD5加密
def md5_encrypt(data):
md5 = MD5.new()
md5.update(data.encode('utf-8'))
return md5.hexdigest()
# 使用示例
key = b'0102030405060708' # 示例AES密钥
data = '需要加密的数据'
encrypted_data = aes_encrypt(key, data.encode('utf-8'))
decrypted_data = aes_decrypt(key, encrypted_data)
print('原文:', data)
print('加密:', encrypted_data)
print('解密:', decrypted_data)
# 输出
# 原文: 需要加密的数据
# 加密: 5Y+YWgJH0b2MgZ3JlZW4gZGVmYXVsdCBiYXNlNjRhZGVpbw==
# 解密: 需要加密的数据
这段代码展示了如何使用PyCryptodome库中的AES和MD5模块进行加密和解密操作。aes_encrypt
函数用于加密数据,aes_decrypt
用于解密数据,它们都需要一个密钥和待加密的数据。md5_encrypt
函数用于生成MD5哈希。这些函数可以被用来实现登录流程中的数据加密和验证。
评论已关闭