Zhi_Lian 网络验证 · 多语言对接文档

统一入口 /api/open · 37 类接口 · AES-256-GCM / ChaCha20-Poly1305 加密 · SHA256 / Ed25519 双签名方案

20 种语言示例 12 种已真实服务器实测 零依赖优先 开箱即用

📢 征稿:语言示例 · 采纳即赠 1 个月使用权

本 SDK 目前提供 20 种语言的对接示例(Python、Go、Java、C#、C、C++、Rust、Zig、Nim、Lua、按键精灵、懒人精灵、Lazarus、PureBasic、PHP、Kotlin、Swift、TypeScript/JavaScript、aardio、Delphi),其中部分示例尚未在真实服务器实测。现征集两类贡献,一经采纳均赠 1 个月使用权:

投稿一 · 新语言 清单之外的语言(如 Ruby、Elixir、Dart/Flutter、PowerShell 等)对接示例:

投稿二 · 修正现有示例 实测现有示例并修正问题(尤其标注未实测的几种):

奖励 投稿经审核采纳收录进官方 SDK 后,赠送 1 个月使用权(新语言与修正均可,多投多得)。

投稿方式:联系管理员提交代码文件、实测记录与使用说明。收录时会保留/标注作者署名。

一、快速开始(三步)

  1. 后台「应用管理」拿到:App UUID、App Secret、AES 密钥、ChaCha20 密钥、验签公钥;
  2. 修改所选语言示例文件顶部的配置区;
  3. 运行示例 —— 默认演示获取公告(1),公告能取到即对接成功(其余接口同一调用路径)。
提示:机器码在示例中为占位值,生产环境务必在客户端真实采集;扣点(28)务必带 biz_no 幂等标记防重复扣费。

二、协议总览

统一入口:POST {服务端地址}/api/open(Content-Type: application/json)

// 请求体
{
  "app_uuid":  "应用UUID",
  "api_type":  接口号(整数),
  "algorithm": 加密算法(0=明文, 1=AES-256-GCM, 2=ChaCha20-Poly1305),
  "data":      "按 algorithm 加密后的参数 JSON(base64)",
  "timestamp": 当前Unix秒,
  "sign":      签名
}

签名方案

密文格式(两种算法相同)

base64( 12字节随机nonce + 密文 + 16字节tag ),key 为 32 字节(64 位 hex)。

响应体与验签

// 响应体:code 0=成功 / 2=强制更新拦截 / 其他=失败
{ "code": 0, "data": "加密结果(同请求算法)", "msg": "", "timestamp": "Unix秒", "sign" / "ed_sign": "" }
// 响应验签(方案0):SHA256("code|data|msg|timestamp|secret") 大写 hex
// 响应验签(方案1):Ed25519 验签 "code|data|msg|timestamp"
对接要点:响应里的 timestamp 是字符串(强类型语言按字符串处理再参与验签拼接,不要当数字读取)。

三、各语言示例与依赖

目录语言 / 版本加密支持依赖运行方式
python/Python 3.8+全部requests, pycryptodomepython debug_all_apis.py(GUI 调试器)
go/Go 1.21+全部(含 Ed25519 验签)golang.org/x/cryptogo mod tidy && go run . 已实测
javascript-typescript/Node.js 18+全部(内置 crypto)无node zhilian.js / npx tsx zhilian.ts 已实测
php/PHP 7.2+全部(sodium 内置)curl 扩展php zhilian.php
java/JDK 17+AES/ChaCha/SHA256(Ed25519 需 15+)无(JDK 内置)java ZhiLianClient.java 已实测
C#/.NET 8AES/ChaCha/SHA256无dotnet run 已实测
kotlin/JDK 17 + Kotlin同 Java无(JDK 内置)gradle run 或 IDE 运行
swift/Swift 5.9+全部(CryptoKit/swift-crypto)无swift run
rust/Rust 1.75+全部reqwest / aes-gcm / chacha20poly1305 / ed25519-dalek 等cargo run --release 已实测
C++/C++17AES/ChaCha/Ed25519已内置 deps/(libcurl+LibreSSL 预编译 + json.hpp)运行 build.sh 后 ./zhilian.exe 已实测
C/C99AES/ChaCha/Ed25519已内置 deps/(libcurl+LibreSSL 预编译 + cJSON)运行 build.sh 后 ./zhilian.exe 已实测
delphi/Delphi 10.4+AES-GCM(CNG)/明文,方案 0无(Windows 内置)IDE 打开编译
zig/Zig 0.14+全部(标准库)无zig run main.zig 已实测
nim/Nim 2.x(Windows)AES-GCM/SHA256(CNG)无nim c -d:release -r zhilian.nim 已实测
lua/Lua 5.3+明文+SHA256(纯 Lua)LuaSocketlua zhilian.lua
lazarus/FPC 3.2+AES-GCM(CNG)/明文,方案 0无(Windows 内置)IDE 编译运行 已实测
lanren/懒人精灵高级版(Lua)明文+SHA256(纯 Lua)懒人内置 HTTP插件导入 ZLSDK.lua(未实测)
anjian/按键精灵PC(Q 语言)明文(sign=nonce)WinHTTP 内置放 lib 目录(未实测)
purebasic/PureBasic 5.73+AES-GCM/SHA256(内置)无IDE F5
aardio/aardio 10+明文(保证连通),方案 0无aardio 打开运行
已实测 = 已在真实服务器验证:获取公告 / 公开效验 / 版本检测 / 更新地址 全部返回真实数据且响应验签通过。未标注的语言为源码交付(本机无对应运行环境),协议逻辑与已验证语言完全同源。

四、接口清单(与服务端 dispatch 完全一致)

类型名称关键参数
1获取程序公告-
2获取更新地址-
3检测最新版本version
4获取卡密信息card
5卡密登录card, machine_code, version, device_name, challenge
6账号登录username, password, machine_code, version, device_name, challenge
7账号注册username, password, email, code, card, machine_code
8账号充值username, card
9发送注册验证码email
10领取试用username, password
11发送找回密码验证码email
12找回密码email, code, new_password
13退出登录token
14获取到期时间token
15检测账号状态(心跳)token
16获取程序数据token
17获取变量数据token, alias
18执行远程函数token, alias, params(JSON)
19获取账号数据token
20修改账号密码token 或 username + old_password + new_password
21转绑username, password, machine_code, replace_machine, device_name
22设置账号数据token, data
23封停用户username
24拉黑账号username
25扣除时间username, minutes
26WinLicense 授权下发token, machine_code
28扣减点数token, amount, biz_no(幂等), remark
29查询点数余额token
30设备试用登录machine_code, version, device_name, email, code
31发送设备试用验证码email, machine_code
34获取公开效验(挑战码)machine_code
35执行 LUA 函数token, alias, params(JSON)
36VMP 授权下发token, vmp_hwid(VMP硬件ID,Base64)
37在线支付下单token(可空), tier_id
38VMP 公钥配置下发加密端专用
52旧 IP 转绑已废弃 并入 21

五、安全建议

六、常见问题