这个工具可以模拟拼多多Web网站的指纹生成过程,用于生成API请求所需的参数,包括data、timestamp、appKey和sign。
- 安装Node.js(版本 >= 12.0.0)
- 安装npm包管理器
- 克隆或下载本项目到本地
- 进入项目目录,安装依赖:
npm install主要依赖包:
pako: 用于数据压缩crypto: 用于生成签名express: 用于提供HTTP接口服务
test.js: 直接测试参数生成和发送请求到拼多多APIserver.js: 提供HTTP接口服务README.md: 本说明文档
使用test.js直接生成参数并发送到拼多多API:
node test.js输出示例:
{
"data": "0aeJxNkGF...(省略)",
"timestamp": "1742108682620",
"appKey": "fe",
"sign": "b8613d55c19dda278af31d94c32f61ada1344bd4"
}
生成的sign参数: b8613d55c19dda278af31d94c32f61ada1344bd4
拼多多API响应:
{
"errorCode": 200,
"errorMsg": "SUCCESS",
"result": {
"a": "...",
"b": "...",
"c": null,
...
}
}
启动HTTP服务器:
node server.js服务器默认在3000端口启动,可以通过环境变量PORT修改端口。
请求方式:GET
URL:/api/fingerprint
参数:无
响应示例:
{
"data": "0aeJxNkGF...(省略)",
"timestamp": "1742108682620",
"appKey": "fe",
"sign": "b8613d55c19dda278af31d94c32f61ada1344bd4"
}请求方式:GET
URL:/api/sendRequest
参数:无(使用服务器生成的参数)
响应示例:
{
"errorCode": 200,
"errorMsg": "SUCCESS",
"result": {
"a": "...",
"b": "...",
"c": null,
...
}
}本工具模拟了拼多多指纹生成的完整流程:
-
data参数生成:
- 收集浏览器和设备信息
- 将每个信息项转换为二进制格式
- 合并所有信息
- 使用pako压缩数据
- 进行URL安全的Base64编码
- 添加"0a"前缀
-
timestamp参数:
- 使用Date.now()获取当前时间戳
-
appKey参数:
- 固定值"fe"
-
sign参数:
- 通过sha1("fe" + timestamp + data)生成
- 本工具仅用于学习研究
- API可能会更新,导致参数生成逻辑失效
- 请勿滥用,避免对目标网站造成过大压力