Python代码混淆工具,Python源代码保密、加密、混淆

有时候用Python开发一些功能但不希望用户得到源代码,就希望对Python代码加一些保密措施。目前可行的方案可能是将核心代码用cython编译成os文件。分析如下:

1.用pyc或pyo文件代替
生成方式看这里。Python作为脚本语言,基本上只要是能得到pyc或pyo文件,便是等于拿到了源码,比如python在线反编译可以通过pyc和pyo文件快速识别出源代码。所以此方法只能隐藏源码。

2.混淆源代码
比如这里提供了在线的Python代码混淆服务,一定程度上增加了破解者阅读代码的成本,但是仍然不能起到保密的作用。

3.pyexe、PyInstaller、py2app等打包软件
这些工具用于将一个Python项目打包成单个可执行的文件,方便(在没有Python环境的机器上)使用。但通过压缩包可以方便地得到所有pyc文件或源文件,与C/C++编译生成的可执行文件有本质上的区别,基本上是零保护。

4.Cython
Cython是属于PYTHON的超集,他首先会将PYTHON代码转化成C语言代码,然后通过c编译器生成可执行文件。优势:资源丰富,适合快速开发。翻译成C后速度比较快。缺点是:无法支持JIT技术(导致纯python的执行速度比JAVA、JAVASCRIPT等要慢,于是有了PyPy)
————————————————
版权声明:本文为CSDN博主「孤独な旅人」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kmsj0x00/article/details/80050912

简介

介绍Python代码混淆工具,可以对源代码进行混淆处理,保证功能不变但代码基本不可读。

注意大部分混淆工具都是可逆的,例如编译生成pyc文件可以用 https://github.com/wibiti/uncompyle2 来解码。

pyminifier

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

使用方式比较简单,通过pip安装。

pip install pyminifier

然后直接运行命令,把混淆后的输出重定向文件即可。

pyminifier ./sparse_classifier.py > new.py

默认命令只是对代码顺序进行重排和减少注释,如果需要混淆代码需要加上参数。

pyminifier -O ./sparse_classifier.py > new.py

注意,目前pyminifier只能处理单个文件,而且部分脚本混淆后不可运行,需要手动测试。

Oxyry Python Obfuscator

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

注意目前Oxyry也只能混淆单个Python文件,测试过混淆后代码可用。

Opy

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

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

编译成C模块

目前大部分开源的Python代码混淆工具都是可逆的,最安全的不可逆方式是把Python代码编译成C模块,直接发布编译后的类库即可。

但需要编写额外的代码来生成C模块,并且生成后的模块不一定可以直接运行。

展开阅读全文
©️2020 CSDN 皮肤主题: 终极编程指南 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值