Authorization, explained.HMAC-SHA256 · AES-256-GCM

把软件授权,
做成一件可靠的事。

授权不该只有“通过 / 不通过”。卡密、设备、到期、心跳、封禁、代理、审计,每一个判断都应该可解释、可追溯、可运营。

标准 HTTP / JSON 服务端最终裁决 每卡 Token 密钥
AUTH CHECK
应用NovaKey Demo
校验通过
NK8K-4F2A-9C7D-1B6E
机器码9F2A-77C1
到期2026-12-31
nonce 一次性时间戳 ±300sToken 已签名
服务端状态裁决200 OK
卡密生命周期·机器码绑定·心跳续签·应用开关·多租户·审计·防重放
01Capabilities

把授权拆成可解释的部件

不是一张卡密查一次。应用、设备、时间、状态、操作,组成一条可以排查的链路。

01

卡密与生命周期

生成、批量导入、激活、续费、解绑、冻结、封禁、过期。状态清晰,操作留痕。

Issue · Activate · Renew · Freeze
02

设备与绑定

机器码首次激活绑定,支持多设备、解绑次数、解绑扣时,避免一码多开。

Machine · Device limit · Unbind
03

请求与 Token

HMAC 签名、时间戳、nonce 防重放;AES-256-GCM Token 绑定应用、卡、设备与授权。

HMAC · Nonce · AES-256-GCM
04

运行期管控

心跳续签让封禁、应用关闭、在线状态在运行中生效,不用等用户下次启动。

Heartbeat · App switch · Online status
05

多租户与代理

商户 / 代理 / 应用按 tenant 隔离。每个角色只看到自己范围内的数据。

Tenant · Agent · Isolation
06

审计与风控

验证、封禁、解绑等操作都有记录;IP / 应用 / 卡密三级限流与失败锁定。

Audit · Rate limit · Lockout
Security by default

不是“加个 MD5”,
而是把判断放回服务端

客户端只提交事实:卡密、机器码、时间戳、nonce。所有状态、到期、设备与权限判断,都由服务端计算。

请求签名 + 防重放HMAC-SHA256 覆盖 body,nonce 一次性,时间窗校验。
每卡 Token 密钥HKDF 按卡派生,AES-256-GCM 加密,AAD 绑定机器与授权。
心跳与运行状态运行期持续续签,冻结、封禁、应用关闭即时生效。
全量审计与风控IP / 应用 / 卡密三级限流,失败锁定,操作留痕。
VERIFY TRACEPOST /api.php?action=login
# 一次完整的验证
› POST /api.php?action=login
  x-app-key: NK_APP_...7F2A
  x-timestamp: 1760000000
  x-nonce: b7c1e9a2...
  x-sign: hmac_sha256(...)

✓ signature      valid
✓ timestamp      ±300s
✓ nonce          first use
✓ card           active
✓ machine        bound
✓ token          v2 / gcm

→ verdict: VALID   expire: 2026-12-31
02Process

四步,不绕路

从创建应用到第一张卡密上线,路径保持最短。

01 / CREATE

创建应用

生成 AppKey / Secret,配置绑定与心跳。

02 / ISSUE

生成卡密

按时长批量生成,导出或交给代理。

03 / CONNECT

接入客户端

HTTP / JSON,示例覆盖 iOS、PHP、JS。

04 / OPERATE

持续运营

在线、日志、异常、应用状态,一个后台。

安全不是把算法堆到客户端,而是让每一次放行都有依据,每一次拒绝都有原因。
NovaKey · Design Principle
Start here

把第一张卡密,
发出去。

创建应用,生成卡密,接入验证。剩下的交给后台。

进入开发者后台 →