首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【原创】Python 使用jmpy模块加密|加固 python代码

【原创】Python 使用jmpy模块加密|加固 python代码

原创
作者头像
拉灯的小手
发布2022-06-13 15:49:27
发布2022-06-13 15:49:27
1.8K0
举报

本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!

使用jmpy模块 将py文件加密为so或pyd

操作环境

  • win10 、 mac
  • Python3.9
  • jmpy1.0.6

jmpy官方介绍

简介

将python代码一键加密为so或pyd。支持单个文件加密,整个项目加密。

Git仓库地址: https://github.com/Boris-code/jmpy.git

安装
代码语言:txt
复制
pip install jmpy3
使用方法
代码语言:txt
复制
jmpy -i "xxx project dir" [-o output dir]

加密后的文件默认存储在 dist/project_name/ 下

打包使用

jmpy 加密模块

代码语言:python
复制
# -*- 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()转为字节码在进行解码

代码语言:txt
复制
    找到报错文件:_msvccompiler.py
代码语言:txt
复制
参考:https://blog.csdn.net/qq_43192819/article/details/108981008
代码语言:txt
复制
128行代码修改为:.encode().decode('utf-16le', errors='replace')

资源下载

https://download.csdn.net/download/qq_38154948/85629166

本文仅供学习交流使用,如侵立删!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用jmpy模块 将py文件加密为so或pyd
    • 操作环境
    • jmpy官方介绍
      • 简介
      • 安装
      • 使用方法
    • 打包使用
    • 报错解决:AttributeError: ‘str’ object has no attribute 'decode’
  • 资源下载
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档