Python代码加密 - 4种方案
Python代码加密 - 4种方案
- 发行.pyc文件(👍)
- 代码混淆(👍)
- 使用py2exe(仅限windows)
- 使用Cython(兼容性差)
1、发行 .pyc文件
1)原理
.pyc文件 : 二进制文件,无法看出源码内容。
python执行代码原理:代码 —> .pyc文件 —> 解释执行.pyc文件中内容。
因此,python解释器也可以直接执行.pyc文件
2)步骤
使用python标准库自带的 compileall即可。
# 遍历<path>目录下所有的.py文件,编译成.pyc文件 python -m compileall <path> # .pyc文件也可直接执行,下面两者效果相同 python scriptStudy.py python scriptStudy.pyc
3)优点
- 简单方便,提高源码破解门槛
- 平台兼容性好,.py能在哪运行,.pyc就能在哪运行
4)缺点
-
解释器兼容性查,.pyc只能在特定版本的解释器上运行
-
有现成的反编译工具,破解成本低
-
python-uncompyle6 就是这样一款反编译工具
-
# 将.pyc文件反编译为.py文件 uncompyle6 *compiled-python-file-pyc-or-pyo*
-
2、代码混淆
1)原理
通过一系列的转换,让代码逐渐不让人那么容易明白。
主要有以下几种手段:
- 移除注释和文档。没有这些说明,在一些关键逻辑上就没那么容易明白了。
- 改变缩进。完美的缩进看着才舒服,如果缩进忽长忽短,看着也一定闹心。
- 在tokens中