给脚本设置license,设置有效期,绑定mac地址

我们看到新生成了tool.c tool.cpython-311-x86_64-linux-gnu.so文件和build目录,删除tool.c文件、setup.py和原本的tool.py,保留tool.cpython-311-x86_64-linux-gnu.so文件,把create_license.py文件移动到其他目录。2、新建一个新的main.py,然后将tool.py中要执行的函数移动到main.py中,相当于把tool.py核心功能通过import的方式引入 main.py。
摘要由CSDN通过智能技术生成

辛苦写了一个脚本,但是不想让别人无限转发和分享,还想设置有效期或者绑定对方mac地址,或者想实现脚本收费,那如何实现?

思路如下:

  • 如何生成一个加密的License文件。
  • 如何做License内容核验。
  • 如何加密Python代码

实现流程

一、我的脚本

随便写一个python脚本main.py,待会要给他加上校验

#!/bin/env python3
def function():
	print('我是脚本主程序')
function()

安装依赖库,否则python引用加密库依赖会报错

pip install pycryptodome

二、编写生成license脚本并生成license文件

#!/usr/bin/env python3
from Crypto.Cipher import AES
from binascii import b2a_hex

#定义加密函数
def encrypt(content):
    # 校验密钥是否为16或16的倍数
    while len(content) % 16:
        content += ' '
  	#把密钥编码为utf-8
    content = content.encode('utf-8')
  	#cwillchris123321为加密密钥(必须16位)
    aes = AES.new(b'cwillchris123321', AES.MODE_CBC, b'cwillchris123321')
  	#对密钥进行aes加密
    encrypted_content = aes.encrypt(content)
  	#返回二进制数据的十六进制表示
    return(b2a_hex(encrypted_content))

#生成licence文件
def gen_license_file():
    license_file = './License.dat'
  	#设置对方mac和脚本使用的有效期
    with open(license_file, 'w') as LF:
      	#此处填入对方mac地址
        LF.write('MAC : 00:0c:29:a0:be:24\n')
      	#此处填入你设置的有效期
        LF.write('Date : 20231231\n')
      	#生成签名,防止对方篡改
        sign = encrypt('00:0c:29:a0:be:24#20231231')
        #将生成的签名进行utf-8编码后写入license文件
				LF.write('Sign : ' + str(sign.decode('utf-8')) + '\n')
if __name__ == '__main__':
  	#执行生成licence函数
    gen_license_file()

我们用这个脚本生成license

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cwillchris

你的鼓励将让我产出更多优质干货

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值