本文所有教程及源码、软件仅为技术钻研。不波及计算机信息零碎性能的删除、批改、减少、烦扰,更不会影响计算机信息零碎的失常运行。不得将代码用于非法用处,如侵立删!
应用 jmpy 模块 将 py 文件加密为 so 或 pyd
操作环境
- win10、mac
- Python3.9
- jmpy1.0.6
jmpy 官网介绍
简介
将 python 代码一键加密为 so 或 pyd。反对单个文件加密,整个我的项目加密。
Git 仓库地址: https://github.com/Boris-code/jmpy.git
装置
pip install jmpy3
应用办法
jmpy -i "xxx project dir" [-o output dir]
加密后的文件默认存储在 dist/project_name/ 下
打包应用
jmpy 加密模块
# -*- coding: utf-8 -*-
"""
py 文件加密为 so 或 pyd
python 代码 加密 | 加固
参数阐明:-i | --input_file_path 待加密文件或文件夹门路,可是相对路径或绝对路径
-o | --output_file_path 加密后的文件输入门路,默认在 input_file_path 下创立 dist 文件夹,寄存加密后的文件
-I | --ignore_files 不须要加密的文件或文件夹,逗号分隔
-m | --except_main_file 不加密蕴含__main__的文件(主文件加密后无奈启动), 值为 0、1。默认为 1
报错:AttributeError: 'str' object has no attribute 'decode'
找到报错文件:_msvccompiler.py
参考:https://blog.csdn.net/qq_43192819/article/details/108981008
128 行代码批改为:.encode().decode('utf-16le', errors='replace')
"""
from jmpy.encrypt_py import start_encrypt
# 须要加密的 py 文件
input_file_path = "test.py"
# 间接运行
start_encrypt(input_file_path=input_file_path, output_file_path=None, ignore_files=None, except_main_file=0)
报错解决:AttributeError:‘str’object has no attribute ‘decode’
首次应用时碰到了一个:AttributeError: ‘str’ object has no attribute ‘decode’ 的报错
起因:Python2 和 Python3 在字符串编码上的区别。
解决办法:先 encode()转为字节码在进行解码
找到报错文件:_msvccompiler.py
参考:https://blog.csdn.net/qq_43192819/article/details/108981008
128 行代码批改为:.encode().decode('utf-16le', errors='replace')
资源下载
https://download.csdn.net/download/qq_38154948/85629166
本文仅供学习交换应用,如侵立删! |
**