WDA是H5ExtTransfer接口会用到的.在字段2中json请求内容名字为context_id
示例context_id: 33-9-141-W71dd244a27a4fe9a1762768491755
完整代码
import hashlib
import time
def calculate_device_id():
mac_all = "1C1B0D0E93981C1B0D0E9396"
cpuidtxt = "3219913727" # 需要转有符号 -1077150721
# 将无符号整数转换为有符号整数
cpuid_unsigned = int(cpuidtxt)
if cpuid_unsigned > 0x7FFFFFFF: # 如果大于最大有符号整数
cpuid_signed = cpuid_unsigned - 0x100000000
else:
cpuid_signed = cpuid_unsigned
# 使用有符号整数参与运算
cpuidtxt = str(cpuid_signed)
# print(cpuidtxt)
# 第一次MD5
mac_bytes = bytes.fromhex(mac_all)
macmd5 = hashlib.md5(mac_bytes).hexdigest().lower().replace(" ", "")
# 组合字符串
dev_md5 = macmd5 + cpuidtxt
# print(dev_md5)
# 第二次MD5
dev_bytes = dev_md5.encode('utf-8')
dev_hex = dev_bytes.hex()
dev_md5 = hashlib.md5(bytes.fromhex(dev_hex)).hexdigest().lower().replace(" ", "")
# 添加前缀并截取
result = "W" + dev_md5
return result[:17]
# 使用示例
if __name__ == "__main__":
device_id = calculate_device_id()
# 获取13位现行时间戳(毫秒级)
timestamp = str(int(time.time() * 1000))
# 组合设备ID和时间戳 33-9-141 传入参数固定的 只有部分业务 不同
final_result = "33-9-141-" + device_id + timestamp
print("context_id:", final_result)
PC微信WDA算法
AiXed2025-11-16 5:03
相关推荐
莪_幻尘4 小时前
你的 AI Skill 越多越蠢?Token 上下文爆炸的求生指南lichenyang4535 小时前
从 has.echo 到异步 API 注册表:一次 ASCF API 回调不触发的排查复盘林瞅瞅5 小时前
Nuxt3 项目部署 Nginx 防盗链后特定 JS 文件 403 问题修复方案kyriewen5 小时前
别再每次都 Google 了:我整理了前端日常最常踩的 10 个 Git 坑,附速查表一颗奇趣蛋5 小时前
Web 视频开发完全指南:从入门到精通非洲农业不发达6 小时前
windows终端体验大升级,让你拥有macos级别的美化妙码生花6 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十七):登录接口完善,登录页接口整合,解决跨域唐诗6 小时前
改 3 行配置,我的 Tauri dev 冷启动从 100 秒干到 4 秒SmartBoyW6 小时前
深入ECMAScript规范:彻底搞懂JS隐式类型转换与底层ToPrimitive机制牧艺6 小时前
Cursor Rules / Skills 分层设计:让 Agent 像「团队新同事」