设备指纹与硬件绑定
A7验证通过机器码(参数名 Mac,别名 DeviceId) 来识别「一台设备」。绝大多数业务接口都接受 Mac,它决定了账号/卡密与哪台电脑绑定,也是风控(换绑、黑名单)的基础。
机器码是什么
机器码是客户端在本地生成的一段稳定字符串,用来代表「当前这台电脑」。常见做法:
- 取硬盘序列号 / 主板序列号 / MAC 地址组合的哈希;
- 用
取机器码()、取硬盘特征字()(易语言)等命令生成; - 关键要求:同一台电脑每次生成结果必须一致,换电脑必须不同。
机器码稳定性
不要用「开机时间戳」「随机 GUID」「临时文件路径」这类会变的值做机器码,否则每次启动都被当成新设备,触发换绑限制甚至黑名单。
两种授权模式的绑定差异
| 模式 | 绑定对象 | 绑定时机 | 换绑入口 |
|---|---|---|---|
| 卡密模式(SingleLogin) | 卡密 → 设备 | 首次卡密登录时绑定到 Mac | 无(卡密与设备强绑定,需后台处理) |
| 账号模式(UserLogin) | 账号 → 设备 | 注册/首次登录时记录 Mac | ChangeBind |
- 卡密模式:一张卡密在一台设备上激活后,换设备登录会返回
1006 该设备已被禁用(若 Activation 状态为 disabled)或要求重新激活。卡密与设备的绑定由后台Activation记录维护。 - 账号模式:账号只有一个
device_id。当登录时的Mac与已绑定的不一致时,UserLogin返回1022 机器码已变更,提示走ChangeBind。
换绑机制
账号模式支持换绑(适合用户换电脑场景):
UserLogin检测到Mac变化 → 返回1022,data.remark携带原机器码。- 客户端提示用户确认换机,调用
ChangeBind(UserName+Password+ 新Mac)。 - 换绑受产品「换绑次数上限」限制,超限返回
1021;相同机器码换绑返回1020(无需处理)。
详见 ChangeBind 换绑设备。
黑名单
产品可配置 IP / 机器码黑名单(WebApiController::checkBlacklist)。命中的请求在卡密登录阶段即返回 1023 已被列入黑名单。开发者可在后台实时添加/移除黑名单条目。