0. 安装加密库
1
| pip install encryptKit -i https://pypi.org/simple
|
基于github源码安装
1
| pip install git+https://github.com/fushengwuyu/pyencryption
|
1. 项目加密
使用Cython将python脚本加密为C语言的动态库,除了预留一个项目入口之外,其余统一将.py脚本转化为.so库,实现对整个python项目加密的任务。
执行命令:
1 2 3 4 5 6 7 8 9 10 11
| python -m encryption.encrypt_code --help usage: encrypt_code.py [-h] [--except_dirs EXCEPT_DIRS [EXCEPT_DIRS ...]] [--enc_dir ENC_DIR] [--build_dir BUILD_DIR] [--entrance ENTRANCE]
encrypt project
optional arguments: -h, --help show this help message and exit --except_dirs EXCEPT_DIRS [EXCEPT_DIRS ...] 需要屏蔽加密的路径 --enc_dir ENC_DIR 解密项目路径 --build_dir BUILD_DIR 加密后的路径 --entrance ENTRANCE 项目程序入口
|
可以看到相关参数的含义。
使用示例:
1
| python -m encryption.encrypt_code --enc_dir npc_server --build_dir npc_server_enc
|
加密前项目目录如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| ├── apps │ ├── auth │ │ ├── auth.py │ │ ├── __init__.py │ ├── extract │ │ ├── chat.py │ │ ├── __init__.py │ │ ├── time_extract.py │ │ └── view.py │ ├── http_response.py │ ├── __init__.py │ ├── robot_notice │ │ ├── info_gather.py │ │ ├── __init__.py │ │ └── view.py │ └── utils.py ├── config.yaml ├── mq_mode │ ├── __init__.py │ ├── mqtt_plugins.py │ └── utils.py ├── mq_run.py ├── readme.md ├── run.py └── t.py
|
加密后为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| ├── apps │ ├── auth │ │ ├── auth.cpython-38-x86_64-linux-gnu.so │ │ ├── __init__.cpython-38-x86_64-linux-gnu.so │ │ └── __init__.py │ ├── extract │ │ ├── chat.cpython-38-x86_64-linux-gnu.so │ │ ├── __init__.cpython-38-x86_64-linux-gnu.so │ │ ├── __init__.py │ │ ├── time_extract.cpython-38-x86_64-linux-gnu.so │ │ └── view.cpython-38-x86_64-linux-gnu.so │ ├── http_response.cpython-38-x86_64-linux-gnu.so │ ├── __init__.cpython-38-x86_64-linux-gnu.so │ ├── __init__.py │ ├── robot_notice │ │ ├── info_gather.cpython-38-x86_64-linux-gnu.so │ │ ├── __init__.cpython-38-x86_64-linux-gnu.so │ │ ├── __init__.py │ │ └── view.cpython-38-x86_64-linux-gnu.so │ └── utils.cpython-38-x86_64-linux-gnu.so ├── config.yaml ├── mq_mode │ ├── __init__.cpython-38-x86_64-linux-gnu.so │ ├── __init__.py │ ├── mqtt_plugins.cpython-38-x86_64-linux-gnu.so │ └── utils.cpython-38-x86_64-linux-gnu.so ├── mq_run.cpython-38-x86_64-linux-gnu.so ├── readme.md ├── run.cpython-38-x86_64-linux-gnu.so ├── run.py └── t.cpython-38-x86_64-linux-gnu.so
|
正常启动项目入口python run.py
即可启动项目。
2. license授权与认证
待续。。。