APP逆向之AES加密算法

山城小跳 / 2023-08-02 / 原文


import random
from Crypto.Cipher import AES
import base64


# 加密的字符串,必须是固定长度,处理成固定长度
def pad_data(data):
    # 计算需要填充的字节数
    pad_len = AES.block_size - (len(data) % AES.block_size)
    # 使用填充字节进行填充
    padding = bytes([pad_len] * pad_len)
    padded_data = data + padding
    return padded_data



def encrypt_data(password):
    # 创建 AES 密码对象
    # cipher = AES.new(key, AES.MODE_CBC, iv)
    # 密钥(16 字节)
    key = b'6d6656a37cdb7977c10f6d83cab168e9'
    # 初始化向量(16 字节)
    iv = b'0000000000000000'
    cipher = AES.new(key, AES.MODE_CBC, iv)
    # 填充数据
    padded_data = pad_data(password.encode('utf-8'))
    print(padded_data) # 处理成固定长度
    # 加密数据
    encrypted_data = cipher.encrypt(padded_data)
    return base64.b64encode(encrypted_data).decode('utf-8')

if __name__ == '__main__':
    print(encrypt_data('lqz1234567'))
    # Y8rl9EvasBy6rozuyUytsw==  # 抓到的
    # Y8rl9EvasBy6rozuyUytsw== # 我们重写的