有时候用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模块,并且生成后的模块不一定可以直接运行。

Python代码混淆工具,Python源代码保密、加密、混淆相关推荐

  1. python代码混淆工具,Python版代码混淆工具

    写在前面: 代码混淆,其实很简单.原理就是查找.替换而已.市面上有很多混淆工具,最好是在混淆工具的基础上,自己再写一下,二次混淆.算法也不难.如果需要全局混淆,以及自动混淆,那么就复杂一些了,需要再加 ...

  2. Python代码分析工具:PyChecker、Pylint

    1 概述 PyChecker是Python代码的静态分析工具,它能够帮助查找Python代码的bug,而且能够对代码的复杂度和格式等提出警告. PyChecker可以工作在多种方式之下.首先,PyCh ...

  3. Python代码统计工具

    目录 Python代码统计工具 声明 一. 问题提出 二. 代码实现 三. 效果验证 Python代码统计工具 标签: Python 代码统计 声明 本文将对<Python实现C代码统计工具(一 ...

  4. python代码编写工具_编写更好的Python代码的终极指南

    python代码编写工具 Despite its 尽管它 downsides, Python remains the king of today's programming world. Its ve ...

  5. python模块管理工具,Python的包管理工具

    Python的包管理工具 python包管理工具 python包管理工具简介 distribute是setuptools的取代,pip是easy_install的取代. Distribute是对标准库 ...

  6. pythonencoding etf-8_etf iopv python 代码30个Python常用小技巧

    1.原地交换两个数字x, y =10, 20 print(x, y) y, x = x, y print(x, y) 10 20 20 10 2.链状比较操作符n = 10 print(1 print ...

  7. 用Python代码自己写Python代码,竟如此简单

    用Python代码自己写Python代码,竟如此简单 Python作为一门功能强大且使用灵活的编程语言,可以应用于各种领域,具有"无所不能"的特质. Python甚至可以代替人,自 ...

  8. 总结python源文件编译、反编译、加密混淆

    本文更新地址 一.编译 1. 编译为 pyc 2. 编译为 pyo 或者 opt-n.pyc 文件 3. 编译成 pyd 或 so 链接库 编译方法一 编译方法二 编译方法三 使用建议 二.打包 1. ...

  9. python代码质量检查工具_python代码检查工具pylint 让你的python更规范

    复制代码 代码如下: #coding:utf-8 ''' a test function module ''' import urllib import time def fetch(url): '' ...

  10. Python·代码自检工具Pylint

    1.Pylint pylint是一个Python源代码中查找bug的工具,能找出错误,和代码规范的运行.也就是你的代码有Error错误的时候能找出来错误,没有错误的时候,能根据Python代码规范给你 ...

最新文章

  1. 【Boost】系列01:时间与日期
  2. c语言NULL和0区别
  3. uni-app 发送form-data参数的请求方式传值给后台
  4. 可逆矩阵的特征值和原来矩阵_线性代数——相似矩阵的可逆变换矩阵P是否唯一...
  5. C#通过正则表达式判断字符是否为数字
  6. 项目实战:DIY光驱激光雕刻机-激光切割机 (含制作步骤 实物 图纸 程序 上位机软件 )下载
  7. sp3 win xp 符号表_Windows XP with SP3 各版本全搞定(附序列号)
  8. 小波分解与小波包分解的区别
  9. c++ fbxsdk安装配置_Linux上安装软件 - coydone
  10. 亮度、对比度、直方图均衡化
  11. IC卡和ID卡的区别。
  12. Alan Walker MV 合辑01 by defender 歌词
  13. 什么相片可以两张弄成一张_ps怎么把两张图片合成一张
  14. unity如何插入图片_unity 图片导入及其使用方法
  15. mysql可以存储拼音吗_MySQL汉字变换拼音(存储函数)
  16. OracleEBSAPP-XLA-95103错误(EventIDcannothaveaNULLvalue.)
  17. 数据挖掘 (一)——ASC文件读写、时间戳转换、可执行文件打包
  18. 计算机启动后出现黑屏鼠标,电脑开机黑屏只有鼠标,小编教你电脑开机黑屏鼠标能动怎么办...
  19. html实现爱情浪漫表白甜蜜时刻(附源码)
  20. 笔记 | 数据分析产品未来范式的小结(增强分析、智能交互等)

热门文章

  1. word怎么显示计算机数字,如何键入word2007圆圈数字1到10及以上?
  2. 电脑小问题四:知网CAJ格式转下载PDF格式
  3. 离散数学:幂集,生成
  4. 基于Python的周立功CAN上位机(详细教程)
  5. 任务栏管理器无法结束任务 taskkill也无法结束任务 pchunter加载驱动失败
  6. 类91wan未注册域名分享
  7. 解决安装TortoiseSVN时,提示 Windows-Update(kb2999226)
  8. KB2999226-x64.msu 此更新不适合你的计算机VC++2015 redistributable安装出错
  9. 微型计算机原理连线题,微机原理第7章练习题及答案
  10. caxa cam数控车2020破解版 v20.0.0.6460附安装教程|caxa数控车2020破解版