大麦APP中,到了提交订单那一步,需要提交这两参数[Python] 纯文本查看 复制代码 {
"feature": {"gzip": "true"},
"params": ""
}
而params提交的参数是一大串构造的,类似base64的加密,咱们在这里分析下它的加密算法
打开jadx打开大麦.apk,搜索参数,feature,找到加密类
在 com.taobao.android.ultron.datamodel.imp.b类 b方法中
传入1,得到的结果是:H4sIAAAAAAAAADMEALfv3IMBAAAA
但是1的base64值是:MQ==
签名不一致,那它的加密逻辑是什么?
应该先把字符串GZIP压缩后再进行base64即可
python示例代码如下:
[Python] 纯文本查看 复制代码 import gzip
import base64
def compress_and_base64_encode(data):
# 如果输入为空或为None,则返回空字符串
if data is None or len(data) == 0:
return ""
# 将字符串编码为字节数组
encoded_data = data.encode('utf-8')
# 使用GZIP进行压缩
compressed_data = gzip.compress(encoded_data)
# 使用Base64进行编码
encoded_result = base64.b64encode(compressed_data).decode('utf-8')
return encoded_result
# 示例用法
input_number = 1
encoded_result = compress_and_base64_encode(str(input_number))
print("Encoded Result:", encoded_result)
拿到加密值与APP对比,结果一致!
具体不难,自己练练手!
|