前言
最近在做一个商业软件项目,需要实现完整的软件授权管理功能。研究了一圈市面上的方案,要么太重(动不动就要部署一堆服务),要么收费太贵。索性自己撸一套,踩了不少坑,这里把整个实现过程记录下来,希望能帮到有类似需求的朋友。
本文将实现以下功能:
- 激活码生成与校验
- 设备指纹采集与绑定
- 多设备数量限制(比如一个激活码最多激活3台设备)
- 设备解绑与激活转移
- 离线激活支持
完整源码已测试通过,直接拿去用就行。
1. 整体架构设计
先看下整体架构,分为三个部分:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 激活码生成器 │────▶│ 授权服务器 │◀────│ 客户端软件 │ │ (管理后台) │ │ (License API) │ │ (被授权软件) │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ▼ ▼ ▼ 生成激活码 验证/存储