项目地址:

https://github.com/youngquan/goldenmask​github.com


Goldenmask 直译为金色的罩子,灵感来自“金钟罩”的“翻译”。因为 Goldenmask 是一个用来对 Python 源码进行加密保护的工具,有点像金钟罩这种防御性武功的意思,因此用了金钟罩这个名字。同时,还引入了一个选项叫做 layer,对应着武功的层数,实际上则代表了不同层级的 Python 源码保护方法。当前,Goldenmask 只有两层功力,一层用的是 Python 自带的 Compileall 这个库,一层用的是 Cython 这个库,还需要继续修炼。

目前,Goldenmask 支持对 Python 文件、Python Wheel 包、Python 源码包以及 Python 模块文件夹进行加密,你可以选择替换原始的文件,也可以将加密保护后的文件放到临时的编译文件夹 __goldenmask__里去 。此外,每一次保护,还会生成一个叫做 .goldenmask 的文件,里面记录了编译 Python 文件使用的 Python 版本( sys.version)和操作系统信息(platform.uname())。因为考虑到源代码一般会通过 git 或者 svn 进行源码管理,不适合直接替换,因此保护 Python 源码的默认方式是会生成 __goldenmask__ 这个文件夹的。此外,默认的保护方法是 Compileall,Cython 因为自身的限制,以及其实际的用途,有时加密效果并不是很理想。

小试牛刀

$ pip install goldenmask# 默认方法是使用 Compileall 编译为 pyc
$ goldenmask yourpythonfile.py
All done! ✨   ✨$ tree -a .
.
├── __goldenmask__
│   ├── .goldenmask
│   └── yourpythonfile.pyc
└── yourpythonfile.py1 directory, 3 files# 用生成的 .so 文件替换原始的 py 文件
$ goldenmask -i -l 2 yourpythonfile.py
All done! ✨   ✨$ tree -a .
.
├── .goldenmask
└── yourpythonfile.so0 directories, 2 files

安装方法

可以直接使用 pip 进行安装:

$ pip install -U goldenmask

当然更推荐使用虚拟环境,可以使用 Python 自带的 vevn 模块或者第三方的 virtualenv:

$ python -m venv env
# On Windows:
$ .venvScriptsactivate
# On Linux:
$ source env/bin/activate
$ pip install goldenmask --upgrade

因为 Goldenmask 依赖了 Cython 这个项目,因此你还需要确保你的机子上安装了合适的 C 代码编译器。你可以查看 Cython 的 文档 获得详细的安装方法。总的来说,根据不同的操作系统有以下三种方法:

  1. 在 Linux 系统上,可以使用 sudo apt-get install build-essential 或者 yum groupinstall "Development Tools" 完成 C 编译器及其依赖的安装。
  2. 在 Macosx 系统上,安装 XCode。
  3. 在 Windows操作系统上,安装 MinGW 或者 Microsoft’s Visual C。

使用说明

Goldenmask 的帮助文档有详细的说明,可以直接使用 help 选项查看。

$ goldenmask --help
Usage: goldenmask [OPTIONS] [FILES_OR_DIRS]...Goldenmask is a tool to protect your python source code easily.FILES_OR_DIRS can be python files, wheel packages,source packages or dirscontain python files.Options:-l, --layer <int>  Level of protection: 1 - compileall; 2 - cython.-i, --inplace      Whether compile python files in place.--no_smart         This will copy and compile everything you specified.--help             Show this message and exit.

对 wheel 包进行保护:

$ goldenmask goldenmask-0.2.1-py3-none-any.whl
All done! ✨   ✨
$ tree -a .
.
├── __goldenmask__
│   ├── .goldenmask
│   └── goldenmask-0.2.1-py3-none-any.whl
├── .goldenmask
└── goldenmask-0.2.1-py3-none-any.whl1 directory, 4 files

对源码包进行加密:

$ goldenmask -l 2 --inplace goldenmask-0.1.2.tar.gz
running build_ext
building 'goldenmask.cli' extension
...
All done! ✨   ✨
$ tree -a .
.
├── .goldenmask
└── goldenmask-0.1.2.tar.gz

对包含 Python 代码的模块文件夹进行保护:

$ goldenmask pip-download/
All done! ✨   ✨

滴水之恩

  • 感谢知乎用户 prodesire 的分享:如何加密你的 Python 代码
  • 黄玉郎创作武侠漫画《龙虎门》中武功

essential c++源码_Goldenmask - 一键化保护你的 Python 源码相关推荐

  1. Python 源码剖析(一)—— vs2013 编译 python 源码

    参考 windows环境下编译python 准备 VS 2013(其实 vs 版本编译的差异不大,设置也基本相同) python 源码文件: Python-2.7.3.tgz 编译 (1)解压 Pyt ...

  2. python源码剖析读书笔记总结_《Python源码剖析》读书笔记:内存垃圾回收

    Python内存回收的基石是引用计数,"当一个对象的引用被创建或复制时,对象的引用技术加1:当一个对象的引用被销毁时,对象的引用技术减1",如果对象的引用计数减少为0,将对象的所占 ...

  3. python源码加密实现

    本文参考如何保护你的 Python 代码对其想法进行实现. 源码地址:spython@github RAYENCRY rayencry使用AES算法对指定目录中的Python源码加密. 内容 背景 安 ...

  4. python预测算整理集合 python根据历史数据,预测未来数据 神经网络时间序列预测python 销售收入分析与预测 神经网络预测控制 Python 源码 4个lstm做数据预测的案例源代码

    python 预测未来/神经网络/负荷/飞机零件故障/链路预测程序源码 1.python实现TensorFlow2股票股价预测(源码) 2.负荷预测(py thon例子,实时负荷预测,15分钟到4小时 ...

  5. Python源码剖析[19] —— 执行引擎之一般表达式(2)

    Python源码剖析 --Python执行引擎之一般表达式(2) 本文作者: Robert Chen(search.pythoner@gmail.com ) 3.2     Simple.py 前面我 ...

  6. python源码剖析笔记1——Python对象初见

    本文简书地址:http://www.jianshu.com/p/763f6cec7a9b 工作整两年了,用python最多,然而对于python内部机制不一定都清楚,每天沉醉于增删改查的简单逻辑编写, ...

  7. 初探Python字节码和dis模块

    本文主要介绍 Python 字节码.Python 虚拟机内幕以及 dis 模块的简单应用.阅读本文预计 10 min. 初探Python字节码和dis模块 1. 前言 2. Python 字节码 2. ...

  8. 【Android 插件化】VirtualApp 源码分析 ( 目前的 API 现状 | 安装应用源码分析 | 安装按钮执行的操作 | 返回到 HomeActivity 执行的操作 )

    文章目录 一.目前的 API 现状 二.安装应用源码分析 1.安装按钮执行的操作 2.返回到 HomeActivity 执行的操作 一.目前的 API 现状 下图是 VirtualApp 官方给出的集 ...

  9. PHP在线自动发卡网源码 全新一键安装版

    介绍: PHP在线自动发卡网源码 全新一键安装版 网盘下载地址: http://kekewl.net/CMywKhQztyW0 图片:

最新文章

  1. 三星android获取root权限,三星G9250(S6 Edge公开版全网通 Android 5.1)获取ROOT权限详解教程...
  2. Python技巧:不要在for与while循环后写else块
  3. Oracle EM 配置常用命令
  4. 使用gogit 设置 http 以及 ssh 协议
  5. [ZJOI2010]网络扩容[网络流24题]
  6. nikita popov php,PHP中对performance的考虑点
  7. 计组之数据运算:7、定点数原码除法运算(恢复余数法、加减交替法)
  8. antdesignpro 重定向到登录页面_URL重定向跳转绕过
  9. 许昌往事之压力无处不在
  10. 还在死磕 Ajax?那可就 out 了!
  11. 6421B Lab11 为分支机构优化数据访问
  12. L298N——真正的玄学驱动板
  13. 【转载】社会网络中心性度量
  14. 2020年度商业书单:高瓴创始人张磊《价值》等10本书入选
  15. clips与C++的交互
  16. 使用app inventor快速开发安卓app(第一课,点击计数游戏)
  17. 苏宁大数据部门前端面试
  18. 猝死(Sudden death,SD)是人类的最严重的疾病。
  19. 2022年湖北武汉安全员ABC证一年考几次?什么时候考试呢?
  20. som神经网络聚类简单例子_基因表达聚类分析之初探SOM - 自组织特征图

热门文章

  1. 数学建模-14.主成分分析PCA
  2. Mac搭建PHP+rabbitMQ环境
  3. @value 静态变量_C/C++语言中的变量的4种存储类型
  4. python实现计算最少完美平方数
  5. Web API 开发入门--基于Visual Studio
  6. debian dhcp服务启动不了_网刻批量装系统pxe启动教程全自动分区装系统
  7. mysql新浪微盘_Android62期视频教程全集下载
  8. Spring Cloud Stream与RabbitMQ 消费者 消息分组
  9. signature=efaf25d07c6ea03d7552906c0caee5a8,幼児の認知発達における関係把握の問題
  10. wget命令详解_嵌入式学习之 Wget 命令详解