简单版
- 根据 smbios 获取硬件信息 MD5 一下生成机器码
- 将机器码 BASE64 之后发送到服务器端
- 服务器端将 BASE64 解密后的机器码使用 RSA 私钥签名后发送回客户端
- 客户端使用 RSA 公钥再对信息进行签名验证,如正确则注册成功
复杂版(单机单用户)
- 根据 smbios 获取硬件信息 MD5 一下生成机器码
- 提供用户的注册名
- 将机器码和相关注册名 BASE64 之后发送到服务器端
- 服务器端将机器码和相关注册名查询数据库是否是公开废掉的序列号
- 如废掉直接返回验证错误
- 服务器端将 BASE64 解密后的机器码和用户名使用 RSA 私钥签名后发送回客户端
- 客户端使用 RSA 公钥再对信息进行签名验证,如正确则注册成功
单用户多机
- 根据 smbios 获取硬件信息 MD5 一下生成机器码
- 提供用户的注册名
- 将机器码和相关注册名 BASE64 之后发送到服务器端
- 服务器端将机器码和相关注册名查询数据库是否是公开废掉的序列号
- 如废掉直接返回验证错误
- 查询数据库用户已经注册了三台机器,提供的信息超过三台,则验证错误
- 服务器端将 BASE64 解密后的机器码和用户名使用 RSA 私钥签名后发送回客户端
- 客户端使用 RSA 公钥再对信息进行签名验证,如正确则注册成功
note:
- 服务器上私钥要妥善保管
- 客户端定时发送心跳包来验证