C# 客户端授权认证设计
一 技术目标
客户端程序作为一款产品,部署到客户现场的时候,很多时候都会有客户端授权认证功能,程序首次打开的时候,进行授权验证。
二 技术过程
为了实现授权验证功能,需要应用加密技术,一般的解决思路是【系统码】和【授权码】的应用。
当用户安装程序之后,根据当前计算机的硬件标识,通过MD5加密计算【系统码】,通过服务端(系统维护者),进行系统码的加密,然后获得【授权码】,输入客户端进行解密认证,具体流程如下:

在实际的使用过程中,以上方法会遇到几个问题:
- 相同电脑上,部署本公司不同客户端的时候,认证相同
- 系统没有办法记录部署人、部署时间等信息
为了解决以上问题,在认证流程中,加入种子文件的思路,需要部署的程序中加入一个种子文件,种子文件通过加密,自带一个GUID,也加入系统码生成的过程中,种子文件中记录当前系统的开发版本,开发人员等信息,流程如下:

种子文件包含内容如下:


浙公网安备 33010602011771号