Python 软件注册信息生成器
软件注册信息生成器
最近一个项目由于需要防止在多台电脑上使用,也为了防止用户无限期使用,于是简单做了一个注册器。由于用户电脑不能联网,因此就不能做联网验证,所以其实用户也很容易破解。
开源地址: 点击这里
使用说明
- 使用前请使用
pip install pycryptodome
命令按照软件包 - 使用DecryptModule.py模块进行解密运算,该模块运行在用户的计算机中。
- 使用EncryptModule.py 进行加密运算,该模块仅需运行在LICENSE管理员的计算机中。
LICENSE签发过程
- 首先生成加密解密用的密钥对,命令如下:
1 | python3 ./EncryptModule.py -k LICENSE |
- 第二步根据用户机器的唯一识别码,过期时间,和加密密钥产生LICENSE文件,命令如下:
1 | python ./EncryptModule.py -g |
- 第三步,将生成的
LICENSE.txt
和LICENSE-Decrypt.key
发送给用户,放在软件的同级文件夹下
LICENSE校验过程
使用DecryptModule中的LicenseChecker类来判断LICENSE是否有效
例程如下:
1 | a = LicenseChecker("LICENSE.txt", "key-Decrypt.key") |
基本原理
获取用户电脑的识别码,根据用户的唯一识别码和预设的过期时间加密计算出LICENSE.txt
用户打开软件时根据LICENSE.txt 解密出识别码和过期时间,根据识别码和过期时间判断是否换电脑和是否过期
标识符的选择
识别码可以选择网卡的MAC地址,但是考虑到用户计算机上可能没有网卡,因此该方法失效。因此在Windows端选择计算机序列号uuid,在Linux端使用Machine-id
Linux端标识符
1 | cat /var/lib/dbus/machine-id # 不需要root权限 |
Windows端标识符
1 | wmic csproduct get UUID #不需要管理员权限 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ZZSHUB!
评论