Python代码加密方案

2022-07-20  本文已影响0人  皮克厂长
方案1:使用Pyarmor工具进行加密

PyArmor 是一个用于加密和保护 Python 脚本的工具。它能够在运行时刻保护 Python脚本的二进制代码不被泄露,设置加密后 Python 源代码的有效期限,绑定加密后的Python源代码到硬盘、网卡等硬件设备。

1、安装
pip install pyarmor

# 验证是否安装成功, 7.0 以下版本为稳定版
pyarmor --version
2、加密过程
3、加密模式

PyArmor 提供多种加密模式,以满足安全和性能方面的平衡。通常情况下,默认 的加密模式能够满足绝大多数的需要,一般情况下也不需要对加密模式有详细 的了解。仅当对性能有特别的要求或者默认加密模式无法满足需求的时候,才需 要改变加密模式,这就需要理解 PyArmor 的不同加密模式。

4、使用pyarmor
  1. 加密脚本

pyarmor [command] [options]

常用命令:pyarmor obfuscate main.py

pyarmor会加密main.py文件和相同目录下的所有*.py文件,并创建输出子目录dist, 生成加密的主脚本main,py、相同目录下的**.py、生成的运行加密脚本所需的全部辅助文件保存到dis输出目录

  1. 发布加密脚本

发布加密脚本给客户只需要把输出路径dist的所有文件拷贝过去即可

  1. 生成新的许可文件(可选)

使用命令 licenses为加密脚本生成新的许可文件license.lic,加密脚本的同时会在输出目录下面生成一个默认许可文件,dist/licnese.lic,需要生成新的许可文件,并覆盖默认许可文件

例如:

pyarmor licneses --expired 2019 -01-01 code-001

执行该命令会生成一个带有效期的认证文件,这样超过指定日期后加密脚本就无法正常运行了

  1. 绑定加密脚本到固定机器上(可选)

如果想绑定加密脚本到固定机器上,首先在该机器上面运行下面的命令获取硬件信息

pyarmor hdinfo

然后生成绑定到固定机器的许可文件

pyarmor licenses --bind-disk "100304PBN2081SF3NJ5T" --bind-mac "20:c1:d2:2f:a0:96" code-002,

同样,覆盖默认的许可证,这样加密脚本就只能在指定机器上运行

6、命令手册

点击查看

7、优缺点
  1. 优点
  1. 缺点
方案2:使用cython进行加密
1、安装
pip install cython
2、加密过程
3、使用Cython
4、简化Cython加密过程

jmpy3为python的一个第三方库,能够将python代码一键加密为.so或者.pyd文件,支持单个文件加密,整个项目加密,加密后会在项目目录中增加一个dist的文件夹,把源文件替换为加密后的文件即可正常运行

  1. 安装

pip install jmpy3

  1. 切换到项目所在目录,执行以下命令

jmpy -i 项目名称

  1. 发布加密脚本

同样加密后会在项目目录中增加一个dist的文件夹,把源文件替换为加密后的文件即可正常运行

5、优缺点
  1. 优点
  1. 缺点
上一篇 下一篇

猜你喜欢

热点阅读