﻿任免上会系统 · 许可证签发工具  使用说明
============================================================

一、这是什么
------------------------------------------------------------
用于给客户机签发许可证（license.lic）。
客户把机器码报给你 → 你用本工具签发 → 把 .lic 文件发给客户 → 客户导入即可使用。

本工具是单文件程序，不需要安装 .NET，双击即可运行。


二、第一次使用：先指定私钥
------------------------------------------------------------
1. 双击 RmsysLicenseTool.exe
2. 打开「④ 设置」页 → 点「私钥文件」右侧「选择…」
3. 选中服务方保管的 private.txt（签发私钥）

只需设置一次，之后会记住（配置存在 %LOCALAPPDATA%\RmsysLicense\settings.json）。

注意：
  · 私钥等于签发权，不要外发、不要放共享盘、务必离线备份两份
  · 私钥丢失 → 再也签不出许可证，所有客户都要重新激活
  · 「密钥编号 kid」必须是 LIC-2026（与程序内置公钥配对），不要改


三、签发一张许可证
------------------------------------------------------------
1. 打开「① 签发许可证」页
2. 机器码：粘贴客户发来的机器码（形如 HD7K-3M9P-QX2W-8TZR-5N4C）
   客户在后台「系统与审计 → 授权管理」页可以直接复制
   如果就是本机，可点「取本机」
3. 客户名称：如「中共海东市委组织部」
4. 许可证号：自动生成，也可自己填（如 RMSYS-2026-0001）
5. 授权期：按月（默认 12 个月）/ 按天 / 指定到期日
6. 输出目录：.lic 文件保存位置，默认「桌面\许可证」
7. 点「签 发」

签发成功后会显示：
    客户、许可证号、机器码、有效期、签发时间、摘要、文件完整路径
并且已经自动复制文件路径到剪贴板。

工具会自动做一次自检（SM2 验签 + 机器码比对），
自检不通过会拒绝保存并在窗口提示原因。

把 .lic 文件发给客户，客户在后台「系统与审计 → 授权管理」导入即可。


四、许可证台账（SQLite）
------------------------------------------------------------
每签发一张，都会自动记一笔台账，存在：
    %LOCALAPPDATA%\RmsysLicense\licenses.db     （SQLite 数据库）

「② 许可证台账」页可以：
    · 按客户名 / 机器码 / 许可证号 / 备注 模糊查询
    · 查看状态：有效 / 即将到期 / 已过期 / 未生效（过期标红、临期标橙）
    · 导出 CSV（带 BOM，Excel 打开中文不乱码）
    · 重新导出选中：按台账记录重新签一份（签发时间更新，其余不变）

备份这个 db 文件即可对账。
它不参与验签——就算被改，也伪造不出一张真许可证。


五、校验许可证
------------------------------------------------------------
「③ 校验许可证」页：选择 .lic 文件 → 点「开始校验」
    · 核对机器码：填上客户机器码会同时校验机器绑定；留空只验签名
    · 显示签发方 kid、客户、有效期、剩余天数、payload 摘要

客户反馈「导入报错」时，用这个页先验一遍，能立刻区分是
「文件被改过」还是「机器码不对」还是「不是本服务方签发」。


六、续期
------------------------------------------------------------
同机器码再签一张即可，不需要先删旧的：
1. 「① 签发许可证」→ 机器码不变 → 授权期选新周期 → 签发
2. 把新 .lic 发给客户，客户在「授权管理」导入
3. 立即生效，数据不受影响，不用重装

台账里会保留历史记录（同一机器码多张），便于核对续期时间。


七、常见问题
------------------------------------------------------------
Q: 提示「签发后自检未通过」
A: 说明私钥与程序内置公钥不配对，或 kid 填错。请核对你选的是否是
   与当前程序配套的 private.txt，kid 是否为 LIC-2026。

Q: 客户导入后提示「签名校验失败：文件已被修改」
A: 传输过程被改动（常见用记事本打开另存、或邮件客户端处理过）。
   请直接把原始 .lic 文件压缩后发送，不要复制粘贴内容。

Q: 客户导入后提示「许可证不属于本机」
A: 机器码与那台机器不一致。让客户在「授权管理」页复制机器码重新报给你。

Q: 客户换了主板/CPU 之后用不了
A: 机器码由 CPU + 主板 + 系统标识生成，换这两样会变。
   用新机器码重新签发一张即可；换硬盘、加内存不受影响。

Q: 台账文件在哪？能换位置吗
A: 默认在 %LOCALAPPDATA%\RmsysLicense\licenses.db，「④ 设置」页可看到完整路径。
   建议定期把这个文件连同私钥一起备份。


八、注意
------------------------------------------------------------
· 本工具只做「签发」，不联网、不上传任何数据
· 不要把私钥、台账放进共享盘或微信传输
· 客户机上不需要本工具，只需要收到 .lic 文件
