卡密式软件授权与防护一体化:软件作者创建应用 → 批量生成卡密 → 用户兑换卡密获得时长 → 客户端登录 + 心跳保活, 全链路 AES-256-GCM 加密通道保驾护航。
每应用独立 appKey / appSecret,支持公告、版本号与强制更新、单点在线(顶号)、心跳超时等配置,一键重置泄露密钥。
批量生成 100bit 熵随机卡密,按批次管理、停用,CSV 一键导出;用户兑换即注册或续期,卡密用后即焚。
兑换注册/续期、到期时间调整、停用、重置密码;心跳保活 + 单点在线,管理端实时在线列表与强制下线、设备列表与解绑。
关键配置上云,随时在管理端变更无需发版;支持免登录 / Token 两种鉴权模式,可冻结(4009)随时恢复。
三种类型:HTTP 代理(含 SSRF 防护)、HMAC 签名(密钥不出服务端)、一次性挑战值(TTL 5 分钟),把关键判定搬上云端。
被顶下线 / 公告 / 自定义消息 / 到期提醒,心跳顺带推送 + 主动拉取端点,无需长连接;送达即消费,不重复下发。
默认强制加密通道 + 签名 + 防重放;应用级可开关响应加密、机器绑定、客户端哈希白名单;登录/兑换/管理端爆破锁定与 IP 令牌桶限流;Prisma 参数化查询防注入,常数时间比较防时序攻击。
内置 C++(WinHTTP + BCrypt,零第三方依赖,CMake 构建)与 Python(含已编译单文件 wlyz_demo.exe)两套 SDK 示例:封装加密通道、签名、机器码采集、心跳线程与事件回调,三步跑通 兑换 → 登录 → 心跳 → 登出 全流程。
#include "WlyzClient.h" wlyz::Client client; client.Init("https://wlyz.vercel.app", "ak_xxx", "secret_xxx"); auto cfg = client.FetchConfig(); // 公告/版本,forceUpdate 阻断 auto r = client.Redeem(cardKey, "user1", "pass"); // 可选:卡密兑换 auto lg = client.Login("user1", "pass", "1.0.0"); // 自动携带机器码 client.OnKicked = []() { /* 被顶下线 */ }; client.StartHeartbeat(lg.heartbeatIntervalSec); // 后台心跳保活
from wlyz_client import WlyzClient client = WlyzClient("https://wlyz.vercel.app", "ak_xxx", "secret_xxx") client.fetch_config() # 公告/版本 client.redeem("XXXX-XXXX-...", "user1", "pass") # 可选:卡密兑换 client.login("user1", "pass", client_ver="1.0.0") # 自动携带机器码 client.set_kicked_handler(lambda: print("被顶下线")) while True: time.sleep(client.heartbeat_interval) client.heartbeat(dispatch=True) # 心跳保活 + 事件分发
/redeem卡密兑换:注册或续期/login登录,机器绑定 / 哈希白名单/heartbeat心跳保活,返回剩余时长与事件/logout登出会话/config公告 / 版本 / 强制更新/events主动拉取待送达事件/cloud/variable读取云变量/cloud/call调用云函数(代理/签名/挑战)/auth/login管理员登录(防爆破锁定)/auth/change-password修改密码/apps创建应用 / GET 列表 / PATCH 配置/apps/:id/regen-secret重置应用密钥/apps/:id/push向用户推送公告 / 自定义事件/cards/generate批量生成卡密 / 列表 / CSV 导出/users/:id/…调期 / 停用 / 重置密码 / 强制下线/users/:id/devices设备列表 / DELETE 解绑/cloud/variables|functions云变量 / 云函数 CRUD 与冻结