python code 保护(二)

python code 保护(二)


初衷

文章(一)中比较了各python加密方法的优缺点,综合来说通过代码混淆的方式较为常用,其优点是可以兼容平台和不同的Python版本。
因此,接下来将介绍较为常用的混肴工具以及其优缺点。

Pyminifier

简介

pyminifier是一个对Python文件进行压缩、混淆的工具,项目地址 https://github.com/liftoff/pyminifier

pip install pyminifier
# 然后直接运行命令,把混淆后的输出重定向文件即可。
pyminifier ./XXXX.py>new.py
# 默认命令只是对代码顺序进行重排和减少注释,如果需要混淆代码需要加上参数。
pyminifier -O ./XXXX.py>new.py
优缺点
  • pyminifie只能处理单个的文件,部分脚本混肴后可能不可运行,需要手动测试

Oxyry Python Obfuscator

简介

Oxyry Python Obfuscator是一个在线混淆代码的工具,地址是 http://pyob.oxyry.com/ 。

优缺点
  • 目前Oxyry也只能混肴单个的python文件,测试过后代码可用。
  • 在线工具不适用于离线场景

Opy

简介

Opy也是一个代码混淆工具,可以对整个目录的Python文件进行混淆处理,并且支持定义混淆格式,项目地址 https://github.com/QQuick/Opy 。

优缺点

经过测试,混淆后的Python项目不可直接执行,不建议使用。

PyArmorr

简介

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

  • 加密编译后的代码快,保护模块中的字符串和常量
  • 在脚本运行时候动态加密和解密每一个函数(代码块)的二进制码
  • 代码块执行完成之后清空堆栈局部变量
  • 通过授权文件限制加密后的脚本的有效期和设备环境
优缺点
  • 支持Python2.6/2.7/3

  • 支持Windows,mac OS 和Linux

  • 试用版本的加密文件限制为32768字节

  • 试用版本的加密脚本不是私有的,使用公共密钥

  • 加密脚本和平台相关(动态库)

Intensio-Obfuscator

简介

  Intensio Obfuscator是对 python 代码 2.x 和 3.x 的混淆。获取 python 源代码并将其转换为混淆的 python 代码,将变量/类/函数的名称替换为随机字符和定义的长度,删除注释、换行符并在每行添加一个具有始终不同值的随机脚本。

优缺点:
  • 对平台和python版本没有要求
  • 调试难度大 不推荐使用

你可能感兴趣的:(Python,安全)